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

我在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连接器中使用它们?我可以用google搜索的所有示例始终都会自己生成密钥,但是我已经有了密钥。

我试过了

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

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

2019-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.

我已经尝试连接证书和密钥,但是得到了相同的结果。

如何导入密钥?

回答:

我使用了以下两个步骤,这些步骤是在其他答案中链接的评论/帖子中找到的:

: 将x.509证书和密钥转换为pkcs12文件

openssl pkcs12 -export -in server.crt -inkey server.key \

-out server.p12 -name [some-alias] \

-CAfile ca.crt -caname root

注意:请确保在pkcs12文件上输入了密码-否则,当你尝试导入它时,将得到一个空指针异常。(以防其他任何人头痛)。(感谢jocull!)

注意2:你可能想添加-chain选项以保留完整的证书链。(感谢Mafuba)

:将pkcs12文件转换为Java密钥库

keytool -importkeystore \

-deststorepass [changeit] -destkeypass [changeit] -destkeystore server.keystore \

-srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass some-password \

-alias [some-alias]

已完成

可选步骤零:创建自签名证书

openssl genrsa -out server.key 2048

openssl req -new -out server.csr -key server.key

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

以上是 如何导入Java密钥库中的现有X.509证书和私钥以在SSL中使用? 的全部内容, 来源链接: utcz.com/qa/408874.html

回到顶部