Nginx配置https访问
申请SSL证书
在ssl证书申请网站申请ssl证书,这里以腾讯云为例
腾讯云证书申请网址:https://console.cloud.tencent.com/ssl
点击申请证书
按照步骤填写完成,进行域名身份验证。我这边选择的手动验证,因为我的域名和服务器都是阿里云上购买的,需要手动验证。
在阿里云配置域名解析
主机记录、记录值、记录类型按照腾讯云给出的值进行填写,然后等待验证通过(10分钟左右)
颁发证书后将文件下载到本地解压
将Nginx中的.crt和.key文件上传到nginx.conf同级目录下
nginx配置证书
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| server { listen 443 ssl; #填写绑定证书的域名 server_name cloud.tencent.com; #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 root /var/www/cloud.tencent.com; index index.html index.htm; #证书文件名称 ssl_certificate 1_cloud.tencent.com_bundle.crt; #私钥文件名称 ssl_certificate_key 2_cloud.tencent.com.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; location / { index index.html index.htm; } } server { listen 80; #填写绑定证书的域名 server_name cloud.tencent.com; #把http的域名请求转成https return 301 https://$host$request_uri; }
|
修改完成后重启nginx即可
nginx在docker中的情况
停止运行的nginx容器
重新创建容器,将存放证书的文件夹也映射到容器中
1 2 3 4 5 6 7 8 9 10
| docker run -d \ -p 80:80 \ -p 443:443 \ --name nginx \ --restart always \ --network=host \ -v /usr/local/docker/nginx/www:/usr/share/nginx/html \ -v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /usr/local/docker/nginx/logs:/var/log/nginx \ -v /usr/local/docker/nginx/conf/zhenshu:/etc/nginx/zhenshu nginx:1.8
|
在配置nginx.conf中证书路径时添加一层你的文件夹路径
1 2 3 4
| #证书文件名称 ssl_certificate zhenshu/1_cloud.tencent.com_bundle.crt; #私钥文件名称 ssl_certificate_key zhenshu/2_cloud.tencent.com.key;
|
证书查找路径是从/etc/nginx/路径开始查找的,路径一定不要配错。
中途本来项配置的是相对路径结果,证书查找路径变成了/etc/nginx/../../xxx/xxx/xx目录,所以文件一定要挂载到/etc/nginx/目录下,不然会找不到的!
配置完成启动后进入网站查看
https配置完成!