web-dev-qa-db-ja.com

P12証明書をJKSに変換するのに助けが必要

.P12証明書ファイルをJKSキーストアに変換するのに助けが必要です。私は、Javaのkeytoolユーティリティを使用して標準コマンドを実行しました。ただし、結果のJKSファイルを使用してSOAPUI経由でWSエンドポイントにアクセスしようとすると、403.7エラーが発生します-禁止:SSL証明書が必要です。同じエンドポイントに対してSOAPUIでP12ファイルを使用すると、正常な応答が生成されます。以下は、P12キーストアをJKSキーストアにインポートするための標準コマンドです。

keytool -importkeystore -srckeystore src.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore target.jks

また、opensslを使用してP12-> PEM-> DER-> JKSを変換してみました。

openssl pkcs12 -in src.p12 -out src.pem -clcerts

(src.pemを編集して、src.keyとsrc.cerという2つの複合パーツにします)

openssl pkcs8 -topk8 -nocrypt -in src.key -out key.der -inform PEM -outform DER
openssl x509 -in src.cer -inform PEM -out cert.der -outform DER

(2つのキーをkeystore.ImportKeyに結合するユーティリティを実行しました)

keytool -importkeystore -srckeystore keystore.ImportKey -destkeystore target.JKS

同様にサイコロもありません。

行方不明のものはありますか?

18
Adam Doyle

KeytoolアプリケーションとPKCS#12ファイルがある場合は、1行のコマンドを起動します。

keytool -importkeystore -srckeystore [MY_FILE.p12] -srcstoretype pkcs12
 -srcalias [ALIAS_SRC] -destkeystore [MY_KEYSTORE.jks]
 -deststoretype jks -deststorepass [PASSWORD_JKS] -destalias [ALIAS_DEST]

これらのパラメーターを変更する必要があります。

  • MY_FILE.p12:変換するPKCS#12ファイル(.p12または.pfx拡張子)へのパスを示します。
  • MY_KEYSTORE.jks:証明書を保存するキーストアへのパス。存在しない場合は、自動的に作成されます。
  • PASSWORD_JKS:キーストアを開くときに要求されるパスワード。
  • ALIAS_SRC:PKCS#12ファイルの証明書エントリと一致する名前。たとえば、「Tomcat」。

.PFXファイルを生成するWindowsサーバーから証明書をエクスポートする場合は、Windowsによって作成された「エイリアス」名を取得する必要があります。これを行うには、次のコマンドを実行します。

keytool -v -list -storetype pkcs12 -keystore FILE_PFX

そこで、「エイリアス名」フィールドは、コマンドラインで使用する必要がある証明書のストレージ名を示します。

  • ALIAS_DEST:JKSキーストアの証明書エントリと一致する名前、たとえば「Tomcat」。
19
deeps

しかし、彼は.p12をJKSに変換する方法を尋ねたので、答えは次のとおりです。

keytool -importkeystore  -srckeystore mystore.p12 -destkeystore myotherstore.jks -srcstoretype PKCS12 -deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey -destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass

この行を使用するだけで、うまくいきました。

3
Schroeffu

なぜこれほど長い間誰もこの質問に答えていないのか、私は驚いています。とにかく、p12をjksに変換する最も簡単な方法は、Keytoolを使用することです。以下は、使用する必要があるコマンドです。

keytool -importkeystore  -srckeystore mystore.jck -destkeystore myotherstore.jks -srcstoretype jceks
-deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey
-destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass

あなたが直面している問題は、おそらくキーパスを提供しなかったためだと思います。サーバーはキーパスとストアパスを区別できない場合があるため、キーパスとストアパスを同じに保つことをお勧めします。

1
eshaa