nginx配置https

285 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

https与http的区别

HTTP协议也就是超文本传输协议,是一种使用明文数据传输的网络协议。以明文方式发送内容,不提供任何方式的数据加密。综上,http协议明文传输是不安全的。为了解决该问题,出现了HTTPS。 HTTPS也就是超文本传输安全协议,HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。 HTTPS简单的来说就是用客户端请求服务器获取证书公钥 然后客户端(SSL/TLS)解析证书(无效会弹出警告) 浏览器生成随机值 用公钥加密随机值生成密钥 ,客户端将密钥发送给服务器 ,服务端用私钥解密密钥得到随机值 ,将信息和随机值混合在一起进行对称加密 ,将加密的内容发送给客户端 客户端用密钥解密信息。

nginx配置https

从腾讯云下载nginx版本证书 在这里插入图片描述

由于nginx在docker中安装的,所以我们需要开启80端口和443端口映射。

docker nginx 安装

# 拉取镜像
docker pull nginx
# 启动一个默认容器 --rm 即停止容器中自动删除容器
docker run --rm --name nginx1 -p 80:80 -d nginx
# 拷贝default.conf 到宿主机目录 方便日后修改conf 
# 在镜像中 /etc/nginx/nginx.conf  中 include了 default 所以我们直接拷贝default.conf即可
docker cp nginx1:/etc/nginx/nginx.conf /data/nginx/conf/
docker stop nginx1
# 部署nginx
docker run -idt -p 80:80  -p 443:443 --name nginx1 \
-v /data/nginx/dist:/usr/share/nginx/html \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \  
-v /data/nginx/logs:/var/log/nginx nginx \;

nginx 配置https

server {
        listen  443 ssl;
        server_name www.heidaotu.cn;
        # 证书 
        ssl_certificate      /usr/share/nginx/html/heidaotu.cn_nginx/heidaotu.cn_bundle.crt;
        ssl_certificate_key  /usr/share/nginx/html/heidaotu.cn_nginx/heidaotu.cn.key;
        #ssl on;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
        ssl_prefer_server_ciphers on;

        root   /usr/share/nginx/html/facebook;
        location / {
          root   /usr/share/nginx/html/facebook;
          index  index.html index.htm;
        }
    }

然后重启 docker restart nginx1.

查看效果 在这里插入图片描述