保证网站安全——如何正确开启HTTPS、HTTP/2.0
HTTPS就是HTTP的安全加密版,可以防止通信过程中的数据的泄密和被篡改。
HTTP/2.0是下一代HTTP协议,可以增强网站的加载速度和安全性。
今天我嘲笑了一番Tao,SSL加密怎么这么差……
他的博客竟然有POODLE漏洞……
不过我的
也只有A-,感觉没有做到最好。
于是我开始捣鼓起来。
SSL证书的选择
证书认证类型
SSL证书目前分为DV(Domain Validation SSL Certificate)
、OV(Organization Validation SSL Certificate)
、EV(Extended Validation SSL Certificate)
等认证类型,参见以下表格查看证书的不同之处。
证书类型 | 价格 | 加密强度 | 特性 |
---|---|---|---|
DV | 便宜 | 较低 | 域名级认证;支持单域名或多域名加密 |
OV | 中等 | 中等 | 公司或组织认证;支持单域名或多域名加密;支持公司或组织名称认证 |
EV | 昂贵 | 很高 | 公司或组织认证;支持单域名或多域名加密;支持公司或组织名称认证;支持浏览器显示安全加密公司或组织标识 |
DV Wildcard | 中等 | 较低 | 域名级认证;支持单域名或多域名泛域名加密 |
OV Wildcard | 较贵 | 中等 | 公司或组织认证;支持单域名或多域名泛域名加密;支持公司或组织名称认证 |
本人推荐使用DV Wildcard,既便宜又支持泛域名。
证书加密类型
对称性加密算法:AES、DES、3DES、RC4、CHACHA20等
该种算法在设计本质上支持解密且只能用唯一一个密钥解密。DES是一种分组数据加密技术(先将数据分成固定长度的小数据块,之后进行加密),速度较快,而3DES是一种基于DES的加密算法,使用3个不同密匙对同一个分组数据块进行3次加密,使得加密强度更高。而AES算法有着更高的速度和资源使用效率,安全级别也较之更高。RC4是一种速度较快的加密算法,不过使用XOR当密钥中出现重复部分可能会被轻易破解,但只要密钥长度足够,还是很安全的。
非对称性加密算法:RSA、DSA、ECC等
该种算法因为加密和解密使用的是两个不同的密钥(一个公钥,一个私钥),所以这种算法叫作非对称加密算法。RSA算法中私钥可以解密所有对应公钥加密的信息,但是可以防止中间人攻击,只要保证私钥安全,就能保证通信安全,所以RSA是企业级应用标准。DSA安全性比较低,不推荐,但是速度很快。ECC则是更新,更高效,更安全的算法,带宽要求较低,不过处理速度可能会有些慢。还有ECC支持椭圆曲线等类型,本文不再概述。
本人推荐RSA2048及以上或者ECC(如果证书支持)配合AES256使用。
注意添加全证书链。
推荐设置(Nginx):
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
服务器端协议设置
让服务器仅支持TLS 1.0、TLS 1.1、TLS 1.2(必需)会增强服务器的安全强度。
推荐设置(Nginx):ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
HTTP严格传输安全(HSTS)
推荐设置(Nginx):add_header Strict-Transport-Security "max-age=63072000(该值可修改为大于15768000的任何值); includeSubdomains; preload";
开启HTTP/2.0支持
首先验证你的Nginx是否为1.9.5
及以上版本。
由于HTTP/2.0需要SSL的TLS 1.2支持,请先按照上面的步骤打开SSL的TLS 1.2协议。
然后按照以下示例设置即可:
server {
listen 443 **ssl** **http2**;
server_name yourdomain;
……
ssl **on**;
……
}
在listen
后面增加http2
即可,注意HTTP/2.0和Google的SPDY冲突,不能同时开启。
然后重启Nginx服务即可。
查看是否打开HTTP/2.0,只需要F12然后查看Protocol
是不是h2
就行了。
本文所有内容实践后可以到MySSL上进行检测。
有关HTTP/2.0、SPDY、HTTP/1.1的比较,请见http://www.infoq.com/cn/news/2015/02/https-spdy-http2-comparison和https://www.qianduan.net/a-simple-performance-comparison-of-https-spdy-and-http2/。
最后更新于 2018-02-06 22:19:27 并被添加「网站 https SSL 安全」标签,已有 4793 人阅读过。
本文距离最后一次更新已超过180天,部分内容可能会随着时间的推移变更或失效。
此处无声胜有声