在 Linux 上用 OpenSSL 启用 TLS 1.3(TLSv1.3),需要注意 OpenSSL 版本 和 应用程序支持。下面分情况说明。
TLS 1.3 从 OpenSSL 1.1.1 开始正式支持。
openssl version
OpenSSL 1.1.1 或更高 → 支持 TLS 1.3OpenSSL 1.0.x → 不支持 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
openssl s_server \
-accept 4433 \
-tls1_3 \
-cert server.crt \
-key server.key
客户端连接:
openssl s_client -connect localhost:4433 -tls1_3
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
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256;
然后:
nginx -t
systemctl reload nginx
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256
openssl ciphers -v | grep TLSv1.3
常见 TLS 1.3 套件:
TLS_AES_256_GCM_SHA384TLS_AES_128_GCM_SHA256TLS_CHACHA20_POLY1305_SHA256openssl s_server -accept 4433 -tls1_3
或在配置中:
MinProtocol = TLSv1.3
| 项目 | 说明 |
|---|---|
| 最低 OpenSSL 版本 | 1.1.1 |
| 启用方式 | -tls1_3 或配置 MinProtocol |
| 推荐配置 | TLS 1.2 + 1.3 |
| 强制 TLS 1.3 | 不建议所有场景 |
如果你愿意,可以告诉我:
我可以给你 精确到版本的配置示例。