我有一个.Net SAML实现,它根据PKCS 7证书文件中的一个.p7b验证断言的签名。
我有一个客户,他有一个基于Java的身份提供者。它们只能在Java密钥存储 .jks文件中提供证书。
我可以验证他们的身份提供者发送的断言,但如果不根据Java密钥存储中的证书对这些断言进行验证,则无法检查这些断言是否由受信任的提供者签名。
我可以在网上找到很多关于如何将.p7b证书添加到.jks文件中的内容,但是没有任何关于如何逆转该过程的内容。
如何从提供的.p7b文件中获得.Net和.jks可以打开的.jks证书?
或者,我使用本机.p7b实现将.Net加载到X509Chain中。如果我不能转换.jks,是否有任何方法可以让我检查断言的签名,在.Net中加载它呢?
发布于 2014-03-26 16:35:40
事实证明,Java中有一个命令行实用程序可以满足我的需要。在Java运行时目录(我的机器上的C:\Program Files (x86)\Java\jre7\bin)中,有一个名为keytool (用于可读性的新行)的实用工具:
>keytool -importkeystore
-srckeystore clientStore.jks -srcstoretype JKS
-destkeystore outputStore.p12 -deststoretype PKCS12这会产生一个名为outputStore.p12的输出存储,我可以用X509Certificate2Collection.Import()在.Net中加载它。
https://stackoverflow.com/questions/22656994
复制相似问题