TLS协议版本包括TLS v1.0(已禁用)、TLS v1.1、TLS v1.2和TLS v1.3。TLS协议版本越高,HTTPS通信的安全性越高,但高版本TLS协议对浏览器的兼容性较差。本文介绍如何在阿里云产品或自建Web服务器上设置TLS协议版本,以平衡安全性与兼容性。
证书部署在阿里云产品
证书部署在以下阿里云产品时,可通过控制台设置TLS协议版本。以下为简要操作步骤,完整操作请单击对应文档链接查看详情。
DDoS高防
操作步骤
登录DDoS高防控制台。
在顶部菜单栏左上角处,根据DDoS高防产品选择地域。
DDoS高防(中国内地):选择中国内地地域。
DDoS高防(非中国内地):选择非中国内地地域。
在左侧导航栏,选择。
-
在域名接入页面定位到目标域名,在操作列下单击编辑。
-
在编辑网站页签,修改国际标准HTTPS证书的TLS安全策略。更多说明,请参见自定义服务器HTTPS证书的TLS安全策略。
Web应用防火墙
操作步骤
登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。
在左侧导航栏,单击接入管理。
-
在CNAME接入页签,在接入列表上方,单击默认SSL/TLS设置。
-
在默认SSL/TLS设置对话框,设置WAF中默认TLS协议版本,完成如下配置后,单击确定。
配置项
说明
HTTPS证书上传方式
上传SSL证书。具体操作与域名证书上传方式相同,请参见上传证书。
TLS协议版本
选择要启用的TLS协议版本。可选项:
-
支持TLS1.0及以上版本,兼容性最高,安全性较低(默认)
-
支持TLS1.1及以上版本,兼容性较好,安全性较好
-
支持TLS1.2及以上版本,兼容性较好,安全性最高
如果要启用TLS 1.3协议,选中开启支持TLS1.3。
加密套件
选择要启用的加密套件。可选项:
-
全部加密套件,兼容性较高,安全性较低(默认)
-
协议版本的自定义加密套件、请谨慎选择,避免影响业务
关于支持自定义的加密套件,请参见WAF支持的加密套件。
-
更多内容,请参见通过CNAME接入为网站开启WAF防护。
SLB 负载均衡
操作步骤
性能保障型负载均衡实例在创建和配置HTTPS监听时,支持选择TLS安全策略。在添加或配置HTTPS监听时,可在SSL证书引导页,单击高级配置后面的修改,在展开项中选择TLS安全策略。下面以传统型负载均衡CLB为例介绍如何设置TLS协议版本。
负载均衡SLB产品家族包括应用型负载均衡ALB(Application Load Balancer)、网络型负载均衡NLB(Network Load Balancer)和传统型负载均衡CLB(Classic Load Balancer),可根据实际需求选择合适的负载均衡产品。
-
登录 传统型负载均衡CLB控制台 。
-
在顶部菜单栏处,选择实例所属的地域。
-
在实例管理页面,找到目标实例,在操作列单击监听配置向导。
-
在协议&监听引导页,将配置项中的选择监听协议选择为HTTPS选项。完成其他参数配置后单击下一步。如何配置其他参数,请参见添加HTTPS监听。
-
在SSL证书配置向导,选择已上传的服务器证书,或者在选择服务器证书时单击新建服务器证书上传一个服务器证书。证书相关信息,请参见CLB证书管理。
-
单击高级配置后面的编辑,选择TLS安全策略。
说明-
仅性能保障型实例支持选择使用的TLS安全策略。
-
TLS安全策略包含HTTPS可选的TLS协议版本和配套的加密算法套件,具体说明,请参见TLS安全策略。
-
-
完成后续其他配置向导页面的配置后,单击下一步。其他配置向导的详细操作,请参见为CLB实例添加HTTPS监听。
更多内容,请参见添加HTTPS监听。
CDN
操作步骤
执行操作前,请确保已成功配置HTTPS证书,操作方法请参见配置HTTPS证书。
默认开启TLSv1.0、TLSv1.1、TLSv1.2和TLSv1.3版本。
登录CDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,找到目标域名,单击操作列的管理。
在指定域名的左侧导航栏,单击HTTPS配置。
-
在TLS加密套件与协议版本配置区域,根据需要选择加密套件和开启对应的TLS版本。
例如,将 TLSv1.0 和 TLSv1.1 设置为未开启,将 TLSv1.2 和 TLSv1.3 设置为已开启。
支持如下加密套件,请根据需求选择:
-
全部加密算法套件组(默认):安全性较低,兼容性较高,支持的加密算法,请参见CDN默认支持的TLS加密算法。
-
强加密算法套件:安全性较高,兼容性较低,支持的加密算法:
-
TLS_AES_256_GCM_SHA384
-
TLS_AES_128_GCM_SHA256
-
TLS_CHACHA20_POLY1305_SHA256
-
ECDHE-ECDSA-CHACHA20-POLY1305
-
ECDHE-RSA-CHACHA20-POLY1305
-
ECDHE-ECDSA-AES128-GCM-SHA256
-
ECDHE-RSA-AES128-GCM-SHA256
-
ECDHE-ECDSA-AES128-CCM8
-
ECDHE-ECDSA-AES128-CCM
-
ECDHE-ECDSA-AES256-GCM-SHA384
-
ECDHE-RSA-AES256-GCM-SHA384
-
ECDHE-ECDSA-AES256-CCM8
-
ECDHE-ECDSA-AES256-CCM
-
ECDHE-ECDSA-ARIA256-GCM-SHA384
-
ECDHE-ARIA256-GCM-SHA384
-
ECDHE-ECDSA-ARIA128-GCM-SHA256
-
ECDHE-ARIA128-GCM-SHA256
-
-
自定义加密算法套件:请根据需要选择加密套件。
TLS协议版本说明请参见背景信息。
-
更多内容,请参见配置TLS版本与加密套件。
DCDN
操作步骤
执行操作前,请确保已成功配置HTTPS证书,操作方法请参见配置HTTPS证书。
默认开启TLSv1.0、TLSv1.1、TLSv1.2和TLSv1.3版本。
登录DCDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,单击目标域名对应的配置。
在指定域名的左侧导航栏,单击HTTPS配置。
-
在TLS加密套件与协议版本配置区域,根据需要选择加密套件和开启对应的TLS版本。
默认情况下,TLSv1.0、TLSv1.1、TLSv1.2 和 TLSv1.3 已开启。单击修改配置可进行调整。
支持如下加密套件,请根据需求选择:
-
全部加密算法套件组(默认):安全性较低,兼容性较高,支持的加密算法,请参见DCDN默认支持的TLS加密算法。
-
强加密算法套件:安全性较高,兼容性较低,支持的加密算法:
-
TLS_AES_256_GCM_SHA384
-
TLS_AES_128_GCM_SHA256
-
TLS_CHACHA20_POLY1305_SHA256
-
ECDHE-ECDSA-CHACHA20-POLY1305
-
ECDHE-RSA-CHACHA20-POLY1305
-
ECDHE-ECDSA-AES128-GCM-SHA256
-
ECDHE-RSA-AES128-GCM-SHA256
-
ECDHE-ECDSA-AES128-CCM8
-
ECDHE-ECDSA-AES128-CCM
-
ECDHE-ECDSA-AES256-GCM-SHA384
-
ECDHE-RSA-AES256-GCM-SHA384
-
ECDHE-ECDSA-AES256-CCM8
-
ECDHE-ECDSA-AES256-CCM
-
ECDHE-ECDSA-ARIA256-GCM-SHA384
-
ECDHE-ARIA256-GCM-SHA384
-
ECDHE-ECDSA-ARIA128-GCM-SHA256
-
ECDHE-ARIA128-GCM-SHA256
-
-
自定义加密算法套件:请根据需要选择加密套件。
-
更多内容,请参见配置TLS版本控制。
配置过程中如有疑问,请咨询对应产品的商务经理。
证书部署在自建Web服务器
证书部署在自建Web服务器时,需修改服务器配置文件中的ssl_protocols参数,以启用或禁用特定的TLS协议版本。例如,仅支持TLS v1.1和TLS v1.2时,将ssl_protocols配置为TLSv1.1 TLSv1.2;需要启用TLS v1.3时,将ssl_protocols配置为TLSv1.1 TLSv1.2 TLSv1.3。
下面以Nginx为例,介绍如何修改Nginx支持的TLS协议版本。
打开Nginx配置文件
Nginx配置文件通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/目录下的某个.conf文件中。使用以下命令打开配置文件:
sudo nano /etc/nginx/nginx.conf
如果使用独立的站点配置文件,路径可能如下:
sudo nano /etc/nginx/sites-available/default
修改server块中的SSL设置
找到与HTTPS相关的server块,添加或修改ssl_protocols行来指定支持的TLS协议版本。以下示例启用TLS 1.2和TLS 1.3版本。请确保客户端支持已配置的TLS协议版本,否则可能出现连接失败。
server {
listen 443 ssl;
server_name yourdomain.com;
# SSL证书和密钥路径
ssl_certificate /path/to/your_certificate.crt;
ssl_certificate_key /path/to/your_private.key;
# 设置支持的SSL/TLS协议版本
ssl_protocols TLSv1.2 TLSv1.3;
# 可选:设置更安全的加密套件
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
location / {
root /var/www/html;
index index.html index.htm;
}
}
重启Nginx服务
保存更改后,执行以下命令重启Nginx服务使配置生效:
sudo systemctl reload nginx
或使用:
sudo service nginx restart
完成以上步骤后,Nginx服务器的TLS协议版本即修改成功。
验证TLS协议版本是否设置成功
-
运行以下命令测试服务器的TLS配置(将
your_ip替换为实际IP地址):sudo openssl s_client -connect your_ip:443 -
观察输出中的协议版本和证书信息,确认TLS配置已生效。如果输出中显示预期的TLS协议版本信息,则表示设置成功。
Post-Handshake New Session Ticket arrived: SSL-Session: Protocol : TLSv1.3 Cipher : xxx Session-ID: xxx Session-ID-ctx: Resumption PSK: xxx PSK identity: None PSK identity hint: None SRP username: None TLS session ticket lifetime hint: 7200 (seconds) TLS session ticket:
随着安全标准的演进,建议定期审查和更新加密配置,以确保网站安全。