昨天折腾了一个AlphaSSL泛域名证书后,心血来潮去SSL评分网站测试了一番,最后的结果竟然是B,这真是不能忍啊……

为啥会是B,查看了原因,竟然是启用了TLS 1.1,所以为B。那么,删除TLS 1.1不就可以了,确实可以。不过,你的姿势可能不正确。这篇文章就来介绍下宝塔面板搭建的站点,如何正确开启TLS 1.3并删除TLS 1.1, 让你的网站SSL评分达到A+ 。
最终效果评分A+

简介

TLS和加密连接在网络性能方面总是会带来轻微的开销。HTTP/2能帮助解决这个问题,但TLS 1.3通过TLS错误启动和零往返时间(0-RTT)等功能帮助加速加密连接。
1

简单地说,在TLS 1.2中,需要两次往返才能完成TLS握手。使用TLS 1.3时,它只需要一次往返, 这又将加密延迟减半。这有助于这些加密连接比以前更快一点。所以说优点如下:

1.更快的访问速度
2.增强安全性
3.可以减少 TLS 握手的时间

宝塔面板开启TLS 1.3

当我们申请SSL证书后,最新版本的宝塔面板是默认开 ssl_ciphers 启TLS 1.3协议的。注意,如果你这里没有TLS 1.3,可以在 ssl_protocols 这一行后面加上 TLSv1.3 即可,看图:

2

虽然开启了TLS 1.3,不过这样是不行的。我们去SSL评分下,发现会是B。如图:

3

This server supports TLS 1.1. Grade capped to B.(因为服务器支持TLS 1.1,所以为B)

删除TLS 1.1协议

1)删除TLS 1.1也很简单,在网站配置文件中,删除TLS 1.1,只保留TLSv1.2 TLSv1.3即可。如图:

4

2)一些坑需要注意:如果你的服务器有好几个站点,并且都配置了SSL,那么你需要删除所有站点的TLS 1.1,不然,你检测会是一直B。

配置TLS 1.3

删除TLS 1.1之后,我们只保留删除TLS 1.2和TLS 1.3,额如果激进一点,可以只保留一个TLS 1.3。之后,我们修改下: ssl_ciphers 具体如下:

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;

5

测试效果

在线检测地址 :https://www.ssllabs.com/ssltest/analyze.html
6
7

看到DNS CAA No 看来我们还需要设置下这个。

设置DNS CAA

这个玩意建议使用CAA记录自动在线生成来搞定。

在线工具:https://sslmate.com/caa/

1)点开网页后输入域名,选择Auto-Generate Policy

8

2)找到Publish Your CAA Policy,如图:
9

现在我们可以设置dns记录了。

设置HSTS Preload

1)就算设置了DNS CAA,我们得到的评分依然是A,所以还差了最重要的一步,就是设置设置HSTS Preload。额,最简单的设置就是一行代码,如下:

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

2)如何放置呢,nginx服务器只需要放置到你的 HTTPS 配置的 server 块中即可,宝塔面板这样放即可。如图:

10

设置DNS

这里以cloudflare为例,国内DNS商家目前基本都支持了CAA记录了。如何设置看图:

11

设置好保存即可。我们在去检测下,效果如图:

12

最后

1)DNS CAA 和 DNSSEC 这两个都是可选配置,可以不用倒腾。

2)TLS1.1需要删除,这样对于提高网站访问速度有一点帮助。

3)DNSSEC国内支持的很差,大家了解下即可。

4)如果不开启HSTS Preload无法得到A+,所以开不开HSTS Preload自己斟酌,不过开启HSTS Preload可以加快网站的访问速度。如果不需要就删除那段代码即可,不过宝塔可以直接在网站的设置SSL里开启强制HTTPS即可.

最后修改:2020 年 12 月 19 日 08 : 26 PM