在Java servlet中使用x509 cert公钥

问题描述:

我可以使用一些帮助。在Java servlet中使用x509 cert公钥

我有一些非常粗略的要求,建立单一登录到第三方网站。

我的文档中说,我需要:

创建X509证书公钥 发送SAML后一些基本信息到特定的URL

使用纯(ASCII/UTF8)文本

在样本SAML断言,在X509证书应该是这个样子:

..... 
<ds:KeyInfo> 
    <ds:X509Data> 
     <ds:X509Certificate>xxxxxxxxxxxxxxxx</ds:X509Certificate> 
    </ds:X509Data> 
    <ds:KeyValue> 
     <ds:RSAKeyValue> 
      <ds:Modulus>xxxxxxxxxxxxxxxx</ds:Modulus> 
      <ds:Exponent>xxxx</ds:Exponent> 
     </ds:RSAKeyValue> 
     </ds:KeyValue> 
... 

所以我创建我的自签名的证书,如果我使用命令

OpenSSL的X​​509 -noout -text -in ca.crt

我看到的公钥,但它有8个换行符在它并且看起来是这样的:

Subject Public Key Info: 
     Public Key Algorithm: rsaEncryption 
      RSA Public Key: (1024 bit) 
      Modulus (1024 bit): 
       01:a6:26:44:13:cb:ab:5d:37:83:b4:9f:25:a4:8f: 
       73:b8:e3:8c:a6:8a:58:13:a8:4f:af:43:8f:13:4a: 
       96:75:63:ba:8d:6a:43:9c:31:... etc 

我如何使用公共密钥在我的Java servlet,Tomcat上运行,在RedHat Linux。以及它如何在XML文档中工作?

还是我在某个地方出了问题?

感谢您的帮助

我通常使用类似:

<KeyDescriptor use="signing"> 
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> 
       <ds:X509Data> 
        <ds:X509Certificate> ...hRWRV+DyfQc9nO 
        </ds:X509Certificate> 
       </ds:X509Data> 
      </ds:KeyInfo> 
     </KeyDescriptor> 

换句话说,把 “01:A6:26:44:13:” 进入 “01a6264413” 不换行。