站长每天都在想着如何给网站安全加固及提速,魏艾斯笔记在本文中分享开启 TLSv1.3 来给网站提高跨协议攻击的难度,减少握手延迟,让你的网站更快更安全。
本文使用宝塔面板最新稳定版,nginx最新版本,centos最高版本实现。如果你使用军哥lnmp或者 Oneinstack 也都支持 TLSV1.3版本。
还没有宝塔面板的朋友请点击注册宝塔账号,并部署安装宝塔面板,可视化面板的操作比命令行更让人心旷神怡,手到擒来,事半功倍。
宝塔面板建议选择阿里云、腾讯云服务器
更多内容请看宝塔面板专题
点击查看网易云课堂《宝塔Linux面板新手入门教程》
1、为什么要开启 TLSv1.3
TLSv1.3是 https 加密的一种网络安全标准协议,当下大部分网站和浏览器都支持 1.2和1.3协议。
网站使用 TLS 1.2 访问要往返两次才能完成 TLS 握手。
使用TLS 1.3 只要一次往返, 降低了加密延迟,让 SSL证书的加密连接比以前更快
优点总结如下:
- 增强访问安全
- 访问速度更快(减少一半的 TLS 握手时间)
想要开启TLSv1.3就要按照本文的方法都部署一遍,如果你准备好了那就跟着老魏继续看下去。
2、SSL 证书获取及部署
获取 SSL证书的途径有很多,可以去网上申请免费 SSL证书,也可以在阿里云申请免费SSL证书,腾讯云申请免费SSL证书,宝塔面板申请免费SSL证书等等。
上面提到的证书种类主要有 Let’s Encrypt 证书和 TrustAsia SSL证书两种,老魏建议大家选择后者,原因请看从 Let’s Encrypt 证书换成TrustAsia 证书的操作过程。
还没有证书的朋友可以看看上面链接分享的内容,这里不再啰嗦。
3、服务器配置
在网站的配置文件中添加 TLSv1.3的一些配置命令。
以宝塔面板为例说明,使用命令行面板的话找到网站配置文件手动添加即可。
在宝塔面板后台> 网站,点击域名。
找到“配置文件”,在右侧找到 TLSv1.0 TLSv1.1 TLSv1.2,按照下图的代码替换。
留着 TLSv1.2 TLSv1.3,那两个低版本因为不符合 PCI DSS 规范就不添加了。
上图中添加的代码如下:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:!MD5;
保存。
这里有个坑:如果服务器上有多个开启了SSL证书的域名(不管有没有内容),都要添加上面的代码,否则你的目标网站检测结果是B ,而不是A 或 A+。
重启 nginx(重启后生效)。
4、CDN配置
如果你没用 CDN 直接跳到下面第5步。
使用CDN的话要去 CDN中开启 TLS的版本。
- 魏艾斯笔记使用的腾讯云CDN就要手动开启 TLSv1.2 和 TLSv1.3。
- 这个功能位于腾讯云CDN控制台,域名管理,找到要设置的域名,右侧点击“管理”。
- 右侧点击 HTTPS设置,下拉看到 TLS版本配置,如下图所示,要与服务器配置相符。
补充:如果保留 TLSv1.0和 TLSv1.1,那么检测结果是 B,删除这两个就可以是 A 了。
服务器配置和CDN配置要一样!
老魏测试时遇到一个小插曲:腾讯云CDN升级,账号没有开启 TLS版本设置,需要发工单问客服开通。
5、检查 TLSv1.3是否生效
有多种方法检测 TLSv1.3 是否生效。
第一种方法使用浏览器的 F12开发者模式,在 Security下面能看到 TLSv1.3 版本就说明生效了。
第二种方法不但可以检测 TLSv1.3,额外还能够检测你域名 https的安全程度和级别(意外收获)。
国内使用 myssl 检测 TLSv1.3是否生效。这个网站检测结果比较全面,速度比国外检测网站快很多。
下拉看到 TLSv1.2 和 TLSv1.3都支持,就说明生效了。
国外用 https://www.ssllabs.com/ssltest/analyze.html 检测 TLSv1.3 是否生效,因为检测时间较长我就不演示了。
6、额外收获及补充说明
魏艾斯笔记检测的结果 A+,是最高等级。
想得到这个分数需要添加一段代码,用来开通 HSTS。不开启 HSTS Preload 只能得到 A 而不是 A+。另外开启 HSTS Preload 能加快网站打开速度。
开启方法如下:
在宝塔面板的网站配置文件中,找到“SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则”,在这段注释内容的上面添加代码:
add_header Strict-Transport-Security “max-age=31536000; includeSubdomains; preload”;
代码含义:强制浏览器以 https协议访问网站,http无法访问。
在腾讯云CDN配置如下:
- 开启 HSTS配置
- 过期时间:31536000秒(一年)
- 包含子域名:包含
这样就可以在上面的检测网站中获得 A+的最高等级了。
7、总结
以上就是魏艾斯笔记开通 TLSv1.3 的详细操作过程,并且给检测评分提高到了 A+。总体来说,开启TLSv1.3 能够为网站提速及安全加固,起到了正向促进的作用,意义重大。
暂无评论内容