温馨提示×

Linux openssl如何启用TLS3

小樊
36
2026-08-25 07:47:45
栏目: 云计算

Linux 上用 OpenSSL 启用 TLS 1.3(TLSv1.3),需要注意 OpenSSL 版本应用程序支持。下面分情况说明。


一、确认 OpenSSL 是否支持 TLS 1.3

TLS 1.3 从 OpenSSL 1.1.1 开始正式支持。

openssl version
  • OpenSSL 1.1.1 或更高 → 支持 TLS 1.3
  • OpenSSL 1.0.x不支持 TLS 1.3(必须升级)

二、使用 OpenSSL 命令行启用 TLS 1.3

1️⃣ 测试 TLS 1.3 连接

openssl s_client -connect example.com:443 -tls1_3

如果成功,你会看到类似:

Protocol  : TLSv1.3

你也可以同时允许 TLS 1.2 和 1.3:

openssl s_client -connect example.com:443 -tls1_2 -tls1_3

2️⃣ 使用 TLS 1.3 启动 HTTPS 服务(测试用)

openssl s_server \
  -accept 4433 \
  -tls1_3 \
  -cert server.crt \
  -key server.key

客户端连接:

openssl s_client -connect localhost:4433 -tls1_3

三、在 OpenSSL 配置中启用 TLS 1.3

1️⃣ 修改 openssl.cnf

常见路径:

/etc/ssl/openssl.cnf

[system_default_sect] 中添加或修改:

[system_default_sect]
MinProtocol = TLSv1.2
MaxProtocol = TLSv1.3
CipherString = TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256

如果只想强制 TLS 1.3:

MinProtocol = TLSv1.3
MaxProtocol = TLSv1.3

四、在常见服务中启用 TLS 1.3

✅ Nginx

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256;

然后:

nginx -t
systemctl reload nginx

✅ Apache

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256

五、查看支持的 TLS 1.3 密码套件

openssl ciphers -v | grep TLSv1.3

常见 TLS 1.3 套件:

  • TLS_AES_256_GCM_SHA384
  • TLS_AES_128_GCM_SHA256
  • TLS_CHACHA20_POLY1305_SHA256

六、常见问题

❓ 为什么仍然使用 TLS 1.2?

  • 客户端不支持 TLS 1.3
  • 应用(如旧版 Nginx、Postfix、curl)使用旧 OpenSSL
  • 配置文件未生效

❓ 如何强制只用 TLS 1.3?

openssl s_server -accept 4433 -tls1_3

或在配置中:

MinProtocol = TLSv1.3

七、总结

项目 说明
最低 OpenSSL 版本 1.1.1
启用方式 -tls1_3 或配置 MinProtocol
推荐配置 TLS 1.2 + 1.3
强制 TLS 1.3 不建议所有场景

如果你愿意,可以告诉我:

  • ✅ 你用的是 哪个 Linux 发行版
  • ✅ 想给 哪个服务(Nginx / Apache / 自写程序) 启用 TLS 1.3

我可以给你 精确到版本的配置示例

0