移除RSA-PSS签名算法后TLS连接部分更新服务器失败求助
问题排查与解决思路
核心原因分析
错误error:1409445C:SSL routines:ssl3_read_bytes:tlsv13 alert certificate required本质是服务器在TLS 1.3握手过程中要求客户端提供证书,或客户端支持的签名算法与服务器信任的证书签名算法不匹配。结合你的配置变更,核心排查方向如下:
1. ClientSignatureAlgorithms 缺失关键算法
对比你的SignatureAlgorithms和新增的ClientSignatureAlgorithms配置:
SignatureAlgorithms包含ECDSA+SHA512,但ClientSignatureAlgorithms中缺少该算法- 你移除了所有
rsa_pss_rsae_*系列算法,若服务器依赖RSA-PSS签名的证书(自身证书或客户端证书),会直接触发算法不匹配
2. 服务器证书/客户端证书的签名算法不兼容
- 若服务器自身证书使用了你移除的
ecdsa_secp521r1 with sha512或RSA-PSS算法签名,客户端当前配置无法验证该证书,服务器会终止连接并发送alert - 若服务器启用了客户端证书认证,且信任的客户端证书签名算法不在你当前
ClientSignatureAlgorithms列表中,也会触发该错误
具体排查步骤
检查服务器证书的签名算法
执行命令提取服务器证书并查看签名算法:openssl s_client -connect <服务器地址>:<端口> </dev/null 2>/dev/null | openssl x509 -text -noout | grep "Signature Algorithm"确认输出是否包含你移除的算法(如
ecdsa_secp521r1 with SHA512、rsa_pss_rsae_sha256等)。验证客户端证书要求(若启用)
若服务器启用客户端证书认证,检查服务器信任的CA签发的证书使用的签名算法,确认是否在你当前ClientSignatureAlgorithms列表中。临时恢复配置测试
临时将移除的算法添加回ClientSignatureAlgorithms,配置如下:ClientSignatureAlgorithms = ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA512:rsa_pss_rsae_sha256:rsa_pss_rsae_sha384:rsa_pss_rsae_sha512:RSA+SHA256:RSA+SHA384:RSA+SHA512重启依赖OpenSSL的服务后测试连接,若恢复正常,则可确认是算法缺失导致的问题。
最终配置调整建议
根据排查结果针对性调整:
- 若服务器证书使用ECDSA+SHA512:在
ClientSignatureAlgorithms中添加ECDSA+SHA512 - 若服务器要求RSA-PSS签名的客户端证书:将对应的
rsa_pss_rsae_sha256/sha384/sha512加回ClientSignatureAlgorithms(OpenSSL 1.1.1g FIPS模块支持这些合规算法) - 保留FIPS合规性:确保添加的算法均在FIPS 140-2/3允许范围内,Red Hat补丁后的OpenSSL 1.1.1g已默认合规这些算法
调整后的示例配置(按需取舍):
ClientSignatureAlgorithms = ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA512:rsa_pss_rsae_sha256:rsa_pss_rsae_sha384:rsa_pss_rsae_sha512
内容的提问来源于stack exchange,提问作者Akshit Soneji
相关产品推荐
相关产品推荐

