2013-02-15 64 views
0

我可以使用一些幫助。在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文檔中工作?

還是我在某個地方出了問題?

感謝您的幫助

回答

1

我通常使用類似:

<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」 不換行。