wsdl KeyInfo部分显示安全密钥数据这正常吗?

问题描述

| wsdl keyinfo部分显示了我的ssl证书的安全性信息。这正常吗?客户可以查看吗?这是我的样子,我更改了X509Certificate之间的值:
<KeyInfo>
    <X509Data>
        <X509Certificate>
        IIEqjCCApKgAwIBAgIQFhCbhuU2Y7FLY0J7OJrZdTANBgkqhkiG9w0
        BAQUFADARMQ8wDQYDVQQDEwZGdXppb24wHhcNMTEwNTA5MD
        QwMDAwWhcNMjEwNTE2MDQwMDAwWjARMQ8wDQYDVQQDEw
        ZGdXppb24wggIiMA0GCSqGSIb3DQEBAQUAA4
        </X509Certificate>
    </X509Data>
</KeyInfo>
    

解决方法

证书仅包含您的公钥和将此公钥绑定到您的身份(及其使用目的)的其他信息。 .Net具有
X509Certificate2
类,可对证书进行建模。此类还具有一个包含私钥的属性,但这实际上只是为了方便起见:私钥不是实际证书的一部分。 使用XML-Dsig(可能通过WSDL),
KeyInfo/X509Data/X509Certificate
元素仅包含PEM格式的X.509证书。这是正常现象,因为它允许远程方将文档的签名与身份进行匹配:对照证书的公钥来验证文档的签名,并由证书声明身份,即证书的签名。已根据受信任的CA证书进行了验证。 如果您没有公共密钥,那么在没有先验知道要使用哪个密钥的情况下,远程方将无法验证签名。 如果您没有包含公共密钥和与身份相关的断言的证书,则远程方将无法知道是谁签署了该文档。