宝塔面板 Nginx SSL 配置 A + 等级教程
一. 前言
上一篇文章我们配置了Apache的ssl A+教程,这次为大家带来的是Nginx!
为什么要把 SSL 的配置安全等级设置为 A + 呢?我也不知道!好看?
各取所需嘛,不同的人肯定有不同的理解!大家随意,文章教程本就是给那些需要的人!
新手建议修改任何文件之前,先备份!如造成生产环境或者数据异常,请自行负责!
二. 演示配置环境
宝塔 linux 面板 5.1(bt.cn)
Web 服务器环境 nginx1.8
请自行安装好宝塔面板以及nginx环境,并建立好站点(开启ssl)!
三. 具体配置教程
- 前置
同样,先了解下宝塔面板的建立的站点nginx环境下的路径:
nginx1.8 安装路径:/www/server/nginx
所有站点配置文件存放路径:/www/server/panel/vhost/nginx/
站点配置文件:/www/server/panel/vhost/nginx/你的域名.conf(本教程需要修改此文件)
- SSL开启、证书配置
注意:大部分证书机构提供的证书都是多级,所以可能需要我们把多个证书合并成一个,可以减少浏览器额外下载中间证书的次数。具体合并方法请自行探索,这里不叙述了!
**listen 443 ssl;
ssl on; (开启ssl)
ssl_certificate /etc/letsencrypt/live/你的域名/fullchain.pem; (完整证书.crt、.pem文件位置)
ssl_certificate_key /etc/letsencrypt/live/你的域名/privkey.pem; (证书私钥.key文件位置)**
- 生成dhparam.pem
命令:openssl dhparam -out dhparam.pem 4096
可能需要比较长的时间,具体根据你的vps服务器cpu 内存而定!我这里默认是使用的4k,如果配置比较低,也可以换成2k,即把后面的参数4096换成2048
写入到站点配置文件:ssl_dhparam /ssl/certs/dhparam.pem;(注意修改dhparam.pem文件路径为你自己的)
- 加密套件和 ciphers 选择,ciphers 的选择比较关键,这个配置中的 ciphers 支持大多数浏览器,但不支持 XP/IE6
ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS";
ssl_prefer_server_ciphers on;
- 安全协议,选择TLS协议,禁用了不安全的 ssl 协议 SSL 2.0 和 SSL 3.0
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
- ssl session配置
ssl_session_cache shared:SSL:10m; (ssl session缓存时间10分钟)
ssl_session_timeout 10m; (ssl session超时时间10分钟)
- HSTS 配置,这个对评分影响也比较大,开启这个需要全站开启 HTTPS 同时也有弊端,开启HSTS后,很长时间就不能换回HTTP了,后面的数字即表示时间(15768000 seconds = 6 months)
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
- 将以上内容写入到站点配置文件的server {} 位置
完整配置如图:
红线部分即需要添加的内容
- 重启Nginx
重启nginx,reload配置,查看是否报错,如有报错,请检查是否修改不正确!
重启方法:
service nginx restart
/etc/init.d/nginx restart
四. SSL安全等级测试地址
测试地址:https://www.ssllabs.com/ssltest/
Hostname 后输入域名,点击 Submit 开始测试,等待测试完成即可!
五. 写在后面
写这么多,也希望能帮到一些人吧!如有疑问,可以评论提出!
这些内容均为自己一年多前研究摸索获得,参考较多内容,时间太长具体那些已经忘记!
基本算是原创吧,如有转载,请注明出处!谢谢!
希望大家多多支持!