我正在尝试做的一些快速背景:客户端正在使用需要相互身份验证的第三方Web服务。该服务要求客户端证书由公共证书颁发机构签名(即:不自签名)。客户端有一些用Java编写的连接到服务的软件,因此他们使用Java keytool生成原始签名请求,密钥/证书存储在jks密钥库中。
客户端将要使用的软件是用C#/ .NET编写的,需要连接到第三方Web服务。因此,我们需要能够访问客户端证书。
我似乎无法找到将证书(以及私钥)导出到Windows证书管理器或.NET安全库可以打开的其他格式的任何方法。
导出到PKCS12文件不起作用,因为keytool不支持可信证书(不确定这是否是keytool限制或格式限制)。
我还发现了一些用于获取私钥的Java代码,但我似乎无法弄清楚如何将其转换为Windows证书管理器并将其与证书相关联。 (How do I list / export private keys from a keystore?)
作为旁注,客户不希望生成新证书,因为将其发送到并通过他们所连接的第三方服务获得批准涉及整个过程。
最终我希望有一些命令我可以使用keytool / openssl / etc来运行,这将允许证书&要导出/传输到Windows证书管理器的密钥(或者可以导入的某种格式)。
(对不起,如果我的术语已经关闭或者其中一些没有意义。尽管对管理证书并不熟悉,我还是有点支持它。)
答案 0 :(得分:0)
这似乎适用于导出证书而不是整个链,诀窍是指定srcalias:
keytool -v -importkeystore -srckeystore .keystore -srcalias mykey -destkeystore myp12file.p12 -deststoretype PKCS12
感谢沃伦指点我:How to export private key from a keystore of self-signed certificate