我有一个.Net SAML实现,用于验证.p7b
文件中PKCS 7 certificate的断言签名。
我的客户拥有基于Java的身份提供商。他们只能在Java key store .jks
文件中提供证书。
我可以验证其身份提供程序发送的断言,但我无法检查这些断言是否由受信任的提供程序签名,而无需根据Java密钥存储区中的证书进行验证。
我可以在网上找到有关如何将.p7b
证书添加到.jks
文件的在线,但没有关于如何撤销该流程的信息。
如何从提供的.p7b
文件中获取.jks
证书(.Net和Windows可以打开)?
或者我正在使用原生X509Chain
实现将.p7b
加载到.Net中。如果我无法转换.jks
有没有办法在.Net中加载它,以便我可以检查断言的签名?
答案 0 :(得分:1)
事实证明,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