You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已在nginx.conf配置TLS_AES_128_CCM_SHA256 cipher却无法连接

问题分析与解决

核心问题根源

  1. TLS 1.3套件与旧版本管理分离:OpenSSL 1.1.1中,TLS 1.3加密套件和TLS 1.2及以下版本的套件是分开维护的。openssl ciphers命令默认仅列出TLS 1.2及以下的套件,因此用openssl ciphers -v | grep CCM无法找到TLS 1.3的CCM套件。
  2. s_client参数误用:连接TLS 1.3时,指定套件需要使用-ciphersuites参数,而非-cipher——后者仅适用于TLS 1.2及以下版本。
  3. nginx配置指令错误:nginx中ssl_ciphers仅负责配置TLS 1.2及以下的加密套件,TLS 1.3的套件必须通过ssl_ciphersuites指令单独配置。你将TLS 1.3的CCM套件放在ssl_ciphers里,nginx无法识别生效。

具体解决步骤

1. 验证OpenSSL对TLS 1.3 CCM套件的支持

执行以下命令查看TLS 1.3的所有支持套件:

openssl ciphers -v -s -tls1_3

你会看到TLS_AES_128_CCM_SHA256和TLS_AES_128_CCM_8_SHA256出现在列表中。

2. 修正openssl s_client连接命令

改用-ciphersuites参数指定TLS 1.3套件:

openssl s_client -connect 192.168.2.15:443 -ciphersuites TLS_AES_128_CCM_SHA256 -tls1_3

3. 修正nginx配置

将TLS 1.3的套件从ssl_ciphers中移出,单独配置到ssl_ciphersuites指令中,示例配置如下:

# TLS 1.2及以下版本的加密套件
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:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-AES128-CCM:AES256-GCM-SHA384:AES128-GCM-SHA256:CHACHA20-POLY1305-SHA256';
# TLS 1.3的加密套件
ssl_ciphersuites 'TLS_AES_128_CCM_SHA256:TLS_AES_128_CCM_8_SHA256';
# 确保启用TLS 1.3
ssl_protocols TLSv1.2 TLSv1.3;

修改后重启nginx:

systemctl restart nginx

完成以上步骤后,再用修正后的s_client命令测试,即可正常匹配到TLS 1.3的CCM套件。

内容的提问来源于stack exchange,提问作者raw-bean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 03:17:14