Thawteトライアル証明書をJavaキーストアにインポートします
質問
SSLを使用してTomcatサーバーを構成しようとしています。このようにキーペアを生成しました:
$ keytool -genkeypair -alias tomcat -keyalg RSA -keystore keys
次に、証明書署名リクエストを生成します。
$ keytool -certreq -keyalg RSA -alias tomcat -keystore keys -file tomcat.csr
次に、内容をコピーします tomcat.csr
ThawteのWebサイトのフォームに、SSL証明書を試用することを要求します。その見返りに、2つの証明書が区切られています -----BEGIN ... -----END
, 、私が節約すること tomcat.crt
と thawte.crt
. 。 (Thawteは、2番目の証明書を「Thawte Test CAルート」証明書と呼びます)。
どちらかをインポートしようとすると、失敗します。
$ keytool -importcert -alias tomcat -file tomcat.crt -keystore keys
Enter keystore password:
keytool error: java.lang.Exception: Failed to establish chain from reply
$ keytool -importcert -alias thawte -file thawtetest.crt -keystore keys
Enter keystore password:
keytool error: java.lang.Exception: Input not an X.509 certificate
追加します -trustcacerts
これらのコマンドのいずれかのオプションも何も変更しません。
私がここで何をしているのか考えてみませんか?
解決
私はついにここで何が起こっているのか理解しました。 Thawteから得た返信はPKCS#7としてフォーマットされていることがわかりますが、 keytool
X.509形式で認定されていることが期待されます。
openssl
ある形式から別の形式に証明書を変換するために使用できます。
$ openssl pkcs7 -in thawtetest.crt -print_certs |
openssl x509 > thawtetest.x509
これでインポートできます thawtetest.x509
Keytoolで、そして tomcat.crt
そのすぐ後ろ。
他のヒント
最近のバージョンを使用している限り、KeyToolを使用してPKCS#7チェーンをインポートできるはずです。証明書を別個のファイルにエクスポートすることも機能しますが、最近のバージョンのKeyToolを実行している場合は、PKCS#7ファイル自体のインポートに問題はないはずです。
私が見つけたのと同じトラブルに遭遇した この郵便受け それは私を助けてくれました。受け取ったトライアル証明書を単一のファイルに入れて、キートールを使用して作成をインポートしました 確かに私が使用したエイリアス(keytool -alias param)は違っていました (つまり、リクエストの証明書を作成するときに使用した同じエイリアスではありません)。同じエイリアスにインポートしようとしているだけでなく、奇妙なエラーメッセージです。