在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的X509 -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” 不换行。