X.509 証明書とキー ファイルのペアがあります。
これら 2 つを 1 つのキーストアにインポートするにはどうすればよいですか? Google で検索できるすべての例では、キーが常に自動的に生成されますが、すでにキーを持っています。
私が試してみました:
keytool -import -keystore ./broker.ks -file mycert.crt
ただし、これは証明書のみをインポートし、キー ファイルはインポートしません。証明書とキーを連結してみましたが、結果は同じでした。
キーをインポートするにはどうすればいいですか?
ベストアンサー1
他の回答にリンクされているコメント/投稿で見つけた次の 2 つの手順を使用しました。
ステップ1: x.509証明書とキーをpkcs12ファイルに変換する
openssl pkcs12 -export -in server.crt -inkey server.key \
-out server.p12 -name [some-alias] \
-CAfile ca.crt -caname root
注意: pkcs12 ファイルにパスワードを設定してください。そうしないと、インポートしようとしたときに null ポインター例外が発生します。(他にもこの問題に悩まされている人がいた場合に備えて)。( jocull さん、ありがとうございます! )
注 2:-chain
完全な証明書チェーンを保持するオプションを追加することをお勧めします。( Mafuba さん、ありがとうございます)
ステップ2: pkcs12ファイルをJavaキーストアに変換する
keytool -importkeystore \
-deststorepass [changeit] -destkeypass [changeit] -destkeystore server.keystore \
-srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass some-password \
-alias [some-alias]
終了した
オプション ステップ 0: 自己署名証明書を作成する
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
FAQ: エラーが発生しますIOException: keystore password was incorrect
OpenSSL 3.0 と Java8u302 より新しい JDK を使用していて、次のエラーが発生する場合:
keytool error: java.io.IOException: keystore password was incorrect
openssl 内のデフォルトの暗号の変更に巻き込まれる可能性があります。このStack Overflowの回答回答を提供します。Thomas に賛成票を投じて感謝しましょう。