小编典典

如何在 Java 密钥库中导入现有的 X.509 证书和私钥以在 SSL 中使用?

all

我在 ActiveMQ 配置中有这个:

<sslContext>
        <sslContext keyStore="file:/home/alex/work/amq/broker.ks"  
 keyStorePassword="password" trustStore="file:${activemq.base}/conf/broker.ts" 
 trustStorePassword="password"/>
</sslContext>

我有一对 X.509 证书和一个密钥文件。

如何导入这两个以便在 SSL 和 SSL+stomp 连接器中使用它们?我可以谷歌搜索的所有示例总是自己生成密钥,但我已经有一个密钥。

我试过了

keytool -import  -keystore ./broker.ks -file mycert.crt

但这只会导入证书而不是密钥文件并导致

2009-05-25 13:16:24,270 [localhost:61612] ERROR TransportConnector - Could not accept connection : No available certificate or key corresponds to the SSL cipher suites which are enabled.

我尝试将证书和密钥连接起来,但得到了相同的结果。

如何导入密钥?


阅读 101

收藏
2022-05-12

共1个答案

小编典典

信不信由你,keytool 不提供像将私钥导入密钥库这样的基本功能。您可以尝试通过将带有私钥的 PKSC12
文件合并到密钥库来尝试此解决方法:

keytool -importkeystore \
  -deststorepass storepassword \
  -destkeypass keypassword \
  -destkeystore my-keystore.jks \
  -srckeystore cert-and-key.p12 \
  -srcstoretype PKCS12 \
  -srcstorepass p12password \
  -alias 1

或者只是使用 IBM
提供的更加用户友好的KeyMan来处理密钥库,而不是使用
keytool。

2022-05-12