提升HTTPS安全评级
Author by Leo
Https 安全等级划分
- T 不可信
- C 不安全
- B 不怎么安全
- A 安全
- A+ 非常安全
影响安全评级的要素
- 证书发行商(CA)是否可信 T
- 允许的SSL/TLS协议版本
- SSLv1-v3 均为 C
- TLSv1.0,TLSv1.1,TLSv1.2 A
- 密钥的加密强度(MD5,RC等加密算法) C
- OpenSSL的版本(定时检查更新) T
- 完全向前保密的密钥强度(dhparam) B <font style='font-size:10px'>什么是完全向前保密呢,总之就是一个很厉害的.能够预防黑客保存拦截的加密数据等待将来一次性全破解的机制.</font>
提升安全评级的要素
以下均已Nginx为例
-
生成chain证书
- 进入证书目录
-rw-r--r-- 1 root root 1854 Jan 13 01:17 983e792300b2056e.crt-rw-r--r-- 1 root root 4795 Jan 13 01:17 gd_bundle-g2-g1.crt
- 新建一个新的文本
vi chain.crt
- 将983e792300b2056e.crt放入到chain.crt
- 将gd_bundle-g2-g1.crt追加到chain.crt
-
生成pem密钥for向前加密算法
- 进入到证书目录
openssl dhparam -out dh_2048.pem 2048
- 2048是密钥的强度,数字越大安全系数越高同时每次加密(和客户端交互)的CPU占用率越高
-
选择可靠地加密算法
以下是Nginx的配置文件
ssl on; ssl_certificate /home/security/wildcard/chain.crt;(使用chain公钥) ssl_certificate_key /home/security/wildcard/xxxx_net.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;(仅支持安全协议) ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5;(拒绝不安全加密) ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; #ssl_dhparam /home/security/wildcard/dhparam.pem;(向前加密密钥) ssl_session_timeout 30m; ssl_buffer_size 1400;
测试安全评级地址
以上就可以保证是A评级
A+ 评级需要开启HSTS(HTTP Strict Transport Security)
开启后用户在规定的时间内只能通过HTTPS访问网站,而且是网站的全部链接.不能后悔.
主要是为了防范SSL剥离攻击