SSL优化

一、关闭TLSv1.0提高安全性

大多数是比较老旧系统上自带浏览器不支持,如果是主流用户使用的Chrome、Firefox和国产浏览器基本都兼容。

ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
二、开启HTTP Strict Transport Security (HSTS)

指示浏览器只使用 HTTPS 连接到目标服务器。这可以防止一些潜在的中间人攻击,包括 SSL 剥离,会话 cookie 窃取(如果没有被 适当保护)。如果遇到任何与证书相关的错误,它还可以阻止浏览器连接到网站。当浏览器访问一个设置相应 HTTP header 的 HTTPS 网站时,HSTS 将被激活。
HSTS 有一个固定期限,由 max-age 字段值控制。这个值可以是静态的,也可以是相对于将来某个特定日期的,你可以设置成 SSL 证书的过期时间。
在浏览器中,HSTS 首选项可以通过提交到 Chromium’s HSTS preload list 来硬编码,这是所有实现 HSTS 使用的浏览器。
注意,HSTS 确实有陷阱。它提供了 include subdomains 选项,这在实践中可能是太宽泛了。此外,客户端错误可能会造成严重的后果——客户端错误的时钟导致它认为服务器的 SSL 证书无效或过期,或者缺少根 CA 证书——将不再导致浏览器中的证书错误。浏览器将完全拒绝访问页面,并且可能会显示让安全专家之外的完全无法理解的错误。

Strict-Transport-Security: max-age=31536000
二·1、同时还允许预加载
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
三、部署 CSP

内容安全策略(CSP)是网站可以用来限制浏览器操作的安全机制。尽管最初旨在解决跨站点脚本(XSS),CSP 不断发展,并支持对增强TLS安全性有用的功能。特别地,它可以用于限制混合内容,当涉及到第三方网站,HSTS没有帮助。

Content-Security-Policy: default-src https: 'unsafe-inline' 'unsafe-eval'; 
connect-src https: wss:

 

四、Web Framework Information

许多 web 框架设置 HTTP 头,识别框架或版本号。除了满足用户的好奇心,而且主要作为技术堆栈的广告,这几乎没有什么作用。这些头是不标准的,对浏览器渲染站点的方式没有影响。
从服务器响应中删除这些标头: X-Powered-By, X-Runtime, X-Version 和 X-AspNet-Version。
标记所有 cookie 安全和 HttpOnly。

Set-Cookie: Key=Value; path=/; secure; HttpOnly, Key2=Value2; secure; HttpOnly
五、加密优化

如果您的服务器需要支持IE6这种古董级别的浏览器,那么就按照百度的做法,如果说对兼容性没有太大的需求,只要主流的浏览器能够访问那么就不要支持3DES系列的加密套件,如果说想要在保证安全性的同时,也要有最好的兼容性,那么就请按照淘宝的配置方式进行配置。

五·1、类似百度
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH; 
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
五·2、类似淘宝
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
五·3、正常
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256::!MD5; 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
五·3、更安全
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256::!MD5; 
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

注:转载并合理整理及修改,原著作网站:https://blog.myssl.com/

发表回复