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

OpenSSL s_server用RSA-PSS证书时DTLSv1.2握手失败求助

问题分析与解决

问题根源

OpenSSL 1.1.1及3.0版本中,DTLSv1.2的默认配置未适配RSA-PSS证书:

  • TLSv1.2会自动识别证书的RSA-PSS密钥类型,同步启用对应的签名算法扩展;
  • DTLSv1.2默认不会主动加载RSA-PSS相关签名算法,导致客户端与服务器无法协商出兼容的密码套件,最终触发「no shared cipher」错误;
  • 普通RSA(PKCS#1 v1.5)证书可正常工作,是因为DTLSv1.2默认支持这类证书对应的签名算法与密码套件。

解决方法

在服务器和客户端的OpenSSL命令中,显式指定支持RSA-PSS的签名算法,同时搭配兼容的加密套件:

服务器端命令

openssl s_server -cert ee_underRoot_pss_sign_pss.crt -key ee_pss_RSA.key -CAfile CA_ROOT_PKCS1_5.crt -dtls1_2 -accept 127.0.0.1:30000 -security_debug_verbose -sigalgs rsa_pss_rsae_sha256:rsa_pss_rsae_sha384:rsa_pss_rsae_sha512 -cipher ECDHE-RSA-AES256-GCM-SHA384:AES256-GCM-SHA384

客户端命令

openssl s_client -showcerts -dtls1_2 -cert ee_underRoot_pss_sign_pss.crt -key ee_pss_RSA.key -CAfile CA_ROOT_PKCS1_5.crt -connect 127.0.0.1:30000 -security_debug_verbose -sigalgs rsa_pss_rsae_sha256:rsa_pss_rsae_sha384:rsa_pss_rsae_sha512 -cipher ECDHE-RSA-AES256-GCM-SHA384:AES256-GCM-SHA384

补充说明

  • -sigalgs 参数指定的签名算法列表需与证书实际使用的RSA-PSS签名哈希算法匹配;
  • -cipher 参数可根据需求调整为其他兼容的DTLSv1.2套件,比如替换为AES128系列;
  • 可执行 openssl ciphers -V -dtls1_2 查看当前OpenSSL支持的DTLSv1.2密码套件,确认所选套件的有效性。

内容的提问来源于stack exchange,提问作者ChrisKris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:52:45