nginx配置SSL证书,实现http到https的访问

一、背景描述

1、centos系统
2、docker容器安装的nginx
3、已审核通过的域名(xxx.com)
4、SSL证书(此处使用百度云)

二、环境配置

2.1 下载SSL证书

登录百度云,进入普通SSL证书页面,点击查看证书
在这里插入图片描述
选择nginx版本下载证书
在这里插入图片描述
下载并解压后的证书文件
在这里插入图片描述

2.2 域名解析

一定要配置好二级域名和三级域名解析,否则域名找不到ip地址(已配置的请忽略此步骤)
在这里插入图片描述

2.3 docker 安装nginx

启动前准备

共创建5个文件:分别是配置目录文件(conf)、包含配置目录文件(conf.d)、日志文件(log)和网页目录文件(html)
mkdir –p /usr/local/docker/nginx/conf
mkdir –p /usr/local/docker/nginx/conf.d
mkdir –p /usr/local/docker/nginx/logs
mkdir –p /usr/local/docker/nginx/html
mkdir –p /usr/local/docker/nginx/ssl

注:将两个证书文件放置于/usr/local/docker/nginx/ssl目录下

配置文件

nginx.conf文件内容(此文件放置于/usr/local/docker/nginx/conf文件夹下)

user  nginx;
worker_processes  2;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  2048;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
   client_max_body_size 1024M;
    client_body_buffer_size 6M;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;
   server {
    listen 443 ssl; # 启用SSL功能
    server_name  dev.xxx.com xxx.com;  # dev.xxx.com为三级域名,xxx.com是二级域名,申请SSL证书时,绑定二级域名即可。
    root html;
    index index.html index.htm;
    ssl_certificate ssl/xxx.com.crt;   #将xxx.crt替换成您证书的文件名。
    ssl_certificate_key ssl/xxx.com.key;   #将xxx.key替换成您证书的密钥文件名。
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
    ssl_prefer_server_ciphers on;   					


    # 我的前端项目放置于/usr/share/nginx/html/dist/文件夹下
     location ^~ / {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        try_files $uri $uri/ /index.html;
        root /usr/share/nginx/html/dist/;
        index index.html;
   }

}
# 设置http请求自动跳转https(可选)
    server {
       listen 80;
       server_name  dev.xxx.com xxx.com; 
       rewrite ^(.*)$ https://$host$1 permanent;
    }
}

启动命令
docker run -itd --name nginx -p 80:80 -p 443:443 --restart=always \
-v /usr/local/docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
-v /usr/local/docker/nginx/logs:/var/log/nginx \
-v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/docker/nginx/html:/usr/share/nginx/html \
-v /usr/local/docker/nginx/ssl:/etc/nginx/ssl \
-d nginx

三、访问页面地址

将原本http访问的页面换成https即可,配置成功,url前方会显示一把🔐
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值