1

我为了设置 SSO 并使用我的身份提供者作为服务提供者,我需要指定要在交换的元数据 XML 文件中用于签名和加密的证书。但是如何创建证书的加密和编码表示(如下所示),以便可以将其放入 XML。我这里需要经过什么流程?

   <q1:KeyDescriptor use="signing">
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
         <X509Data>
            <X509Certificate>MIICZDCCAdGg.....IQ0jOz8mmZToZD7ab9==</X509Certificate>
         </X509Data>
      </KeyInfo>
   </q1:KeyDescriptor>
   <q1:KeyDescriptor use="encryption">
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
         <X509Data>
            <X509Certificate>MIICZDCCAdGg......IQ0jOz8mmZToZD7ab==</X509Certificate>
         </X509Data>
      </KeyInfo>
   </q1:KeyDescriptor>
4

1 回答 1

2

的正文<X509Certificate>是 X509 证书的 DER 编码数据。由于数据类型为 base64Binary,因此需要进行 Base64 编码。

-----BEGIN CERTIFICATE-----
MIIDijCCAnICCQDXfWAafSjGzDANBgkqhkiG9w0BAQQFADCBhjELMAkGA1UEBhMC
...
meTdn90sElH+yhWNRi6XtXirsTjDXQhudWWJ8r5NPkTBE7lDtg+6SBfDCrWFsw==
-----END CERTIFICATE-----

它与 PEM 文件中页眉和页脚之间的内容相同。如果您从 CA 获得证书,它通常已经是 PEM 格式。如果没有,您可以使用 OpenSSL 或 Java Keytool 进行转换。

于 2009-09-22T21:24:28.757 回答