1

我有一个 .Net SAML 实现,它根据PKCS 7 证书验证断言的签名.p7b

我有一个客户拥有基于 Java 的身份提供者。他们只能在Java 密钥库中提供他们的证书 .jks文件中提供他们的证书。

我可以验证他们的身份提供者发送的断言,但是如果不根据 Java 密钥库中的证书验证它们,我就无法检查这些断言是否由受信任的提供者签名。

我可以在网上找到很多关于如何添加.p7b证书添加到.jks文件的信息,但没有关于如何逆转该过程的信息。

如何从.p7b提供的证书中获取证书(.Net 和 Windows 可以打开).jks文件中获取证书(.Net 和 Windows 可以打开)?

或者,我正在使用本机实现将其加载.p7b到 .Net 中。X509Chain如果我无法转换,.jks有什么方法可以在.Net 中加载它,让我检查断言的签名?

4

1 回答 1

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,称为我可以在.Net 中加载X509Certificate2Collection.Import()

于 2014-03-26T16:35:40.673 回答