1. ホーム

[解決済み】Javaキーストアに既存のX.509証明書と秘密鍵をインポートして、SSLで使用するにはどうすればよいですか?

2022-04-03 08:45:42

質問

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コネクターで使用するために、この2つをインポートするにはどうすればよいですか?私がググったすべての例は、常に鍵を自分で生成するものでしたが、私はすでに鍵を持っています。

私が試したのは

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.

証明書と鍵を連結してみましたが、同じ結果になりました。

鍵をインポートするにはどうしたらいいですか?

解決方法は?

信じられないかもしれませんが、keytoolは秘密鍵を鍵ストアにインポートするような基本的な機能を提供しません。次のようにしてください。 回避策 秘密鍵の入ったPKSC12ファイルをキーストアにマージすることで、秘密鍵の管理ができます。

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

または、より使いやすい キーマン IBMから提供されているkeytoolの代わりに、キーストアを扱うことができます。