你可能已将中间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



