wsdl keyinfo部分显示了我的ssl证书的安全信息。这是正常的吗?这可以被客户看到吗?这是我的样子,我改变了X509Certificate:
之间的值<KeyInfo>
<X509Data>
<X509Certificate>
IIEqjCCApKgAwIBAgIQFhCbhuU2Y7FLY0J7OJrZdTANBgkqhkiG9w0
BAQUFADARMQ8wDQYDVQQDEwZGdXppb24wHhcNMTEwNTA5MD
QwMDAwWhcNMjEwNTE2MDQwMDAwWjARMQ8wDQYDVQQDEw
ZGdXppb24wggIiMA0GCSqGSIb3DQEBAQUAA4
</X509Certificate>
</X509Data>
</KeyInfo>
答案 0 :(得分:4)
证书仅包含您的公钥和将此公钥绑定到您的身份的额外信息(以及可以使用它的目的)。
.Net有一个X509Certificate2
类来为证书建模。这个类还有一个包含私钥的属性,但这只是为了方便起见:私钥不是实际证书的一部分。
使用XML-Dsig(可能通过WSDL),KeyInfo/X509Data/X509Certificate
元素仅包含PEM格式的X.509证书。这是正常的,因为它允许远程方匹配文档的签名和身份:文档的签名是根据证书的公钥进行验证的,并且证书声明了身份,其签名是根据可信CA证书进行验证的。 / p>
如果您没有公钥,远程方将无法在事先不知道期望的密钥的情况下验证签名。 如果您没有包含公钥和与身份相关的断言的证书,则远程方将无法知道谁签署了该文档。