【发布时间】:2021-11-10 03:31:44
【问题描述】:
在我们的 MTLS 握手中,我们有一个使用 ECC 颁发的客户端证书和一个使用 RSA 颁发的服务器证书。我们在算法检查中看到握手错误,因为服务器没有 ecdsa 算法,客户端和服务器证书是否应为相同类型(RSA 或 ECC)才能使握手工作,或者有没有办法在服务器端添加 ecdsa 算法而不更改 RSA 服务器证书?
【问题讨论】:
-
首先要明确的是,您的意思是证书包含 ECC 和RSA 密钥,还是由这些类型的CA 密钥签署?我会将“发布使用”解释为后者,但前者对 TLS 更重要——尽管用于签署每个链中所有证书的密钥类型可能很重要。服务器和客户端证书不必包含相同的类型密钥,只要(1)每个证书都是对端端点(即对等点)支持的类型,并且(2)仅适用于 1.2 之前的协议,服务器证书与 at至少一个由客户端提供且服务器可接受的密码套件。
-
为了我们的帮助,您必须具体说明您在两端使用的是什么软件、它是如何配置的,以及您遇到的具体错误和位置。链中所有证书的密钥类型和可能的其他特征(例如大小)可能是相关的,签名类型可能不仅仅是密钥类型 - 特别是RSA 密钥可用于传统的 PKCSv1.5 签名或用于 RSA-PSS 签名,在 1.3 中通常首选后者,而在较低协议中通常需要前者。
标签: certificate client-certificates handshake mtls