为什么Java在SSL握手期间不发送客户端证书?

为什么Java在SSL握手期间不发送客户端证书?,第1张

为什么Java在SSL握手期间不发送客户端证书

你可能已将中间CA证书导入了密钥库,而没有将其与拥有客户端证书及其私钥的条目相关联。你应该可以使用查看此内容

keytool -v -list -keystore store.jks
。如果每个别名条目仅获得一个证书,那么它们就不会在一起。

你需要将证书及其证书链一起导入具有私钥的密钥库别名中。

要找出哪个密钥库别名具有私钥,请使用

keytool -list -keystore store.jks
(我在这里假设JKS存储类型)。这将告诉你以下信息:

Your keystore contains 1 entrymyalias, Feb 15, 2012, PrivateKeyEntry, Certificate fingerprint (MD5): xxxxxxxx

在这里,别名为

myalias
。如果还使用
-v
,则应该看到
Alias Name: myalias

如果尚未单独购买,请从密钥库导出客户端证书:

keytool -exportcert -rfc -file clientcert.pem -keystore store.jks -alias myalias

这应该给你一个PEM文件。

使用文本编辑器(或

cat
),准备
bundle.pem
包含该客户端证书和中间CA证书(如果需要,还可以包括根CA证书本身)的文件(叫它),以使客户端证书位于开始位置并为其发行者证书就在下面。

看起来应该像这样:

-----BEGIN CERTIFICATE-----MIICajCCAdOgAwIBAgIBAjANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJVSzEa....-----END CERTIFICATE----------BEGIN CERTIFICATE-----MIICkjCCAfugAwIBAgIJAKm5bDEMxZd7MA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNV....-----END CERTIFICATE-----

现在,将此捆绑包重新导入到你的私钥为的别名中:

keytool -importcert -keystore store.jks -alias myalias -file bundle.pem



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5004193.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存