web-dev-qa-db-ja.com

証明書チェーンをキーストアに追加する方法は?

証明書のチェーンを持つファイルがあります-certificate.cer:

subject=/C...
issuer=/C=US/O=VeriSign, Inc...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

subject=/C=US/O=VeriSign, Inc...
issuer=/C=US/O=VeriSign, Inc...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

subject=/C=US/O=VeriSign, Inc...
issuer=/C=US/O=VeriSign, Inc...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

この証明書チェーンをキーストアに追加する必要があります。
私がやること:

openssl x509 -outform der -in certificate.cer -out cert.der
keytool -v -importcert -alias mykey -file cert.der -keypass <passwd> -keystore keystore -storepass <passwd> -alias <myalias>

その結果、キーストアに証明書が1つしかありません。
ただし、3が必要です。
何が問題なのでしょうか?

解決策:
CAから証明書がPKCS#7形式で送信されました。
certificate.p7bファイルに保存し、次のコマンドでキーストアに正常に追加しました。

keytool -import -trustcacerts -file certificate.p7b -keystore keystore -storepass <mypasswd> -alias "myalias"
30

Keytool manから-入力がPKCS#7形式で指定されている場合は証明書チェーンをインポートし、それ以外の場合は単一の証明書のみがインポートされます。 openssl crl2pkcs7コマンドを使用して、opensslで証明書をPKCS#7形式に変換できるはずです。

8

問題を解決するには、すべてのペムをまとめます:

cat cert.pem chain.pem fullchain.pem >all.pem
openssl pkcs12 -export -in all.pem -inkey privkey.pem -out cert_and_key.p12 -name Tomcat -CAfile chain.pem -caname root -password MYPASSWORD
keytool -importkeystore -deststorepass MYPASSWORD -destkeypass MYPASSWORD -destkeystore MyDSKeyStore.jks -srckeystore cert_and_key.p12 -srcstoretype PKCS12 -srcstorepass MYPASSWORD -alias Tomcat
keytool -import -trustcacerts -alias root -file chain.pem -keystore MyDSKeyStore.jks -storepass MYPASSWORD

(keytoolは、PKCS7形式のキーをどうするかを知りませんでした)

Letsencryptからすべてのペムを取得しました

24
nont