web-dev-qa-db-ja.com

「秘密鍵に一致する証明書はありません」を取得する

これは私が試したコマンドのシーケンスです:

a。ストアから既存の証明書キーを抽出します。

keytool -v -importkeystore -srckeystore keystore -srcalias one -destkeystore temppp -deststoretype PKCS12 -srcstorepass passwordd -deststorepass passwordd

b。エクスポートした証明書から秘密鍵を抽出します。

openssl pkcs12 -in temppp -out csr_private.key -nocerts -nodes -password pass:passwordd

c。抽出されたキーを使用してcsrを生成します。

openssl req -nodes -sha256 -new -key csr_private.key -out request.csr -subj '/C=IL/ST=Unknown/L=Unknown/O=Bla/OU=Bla/CN=BLAAAA'

d。自己署名証明書とキーを生成します。

openssl req -x509 -newkey rsa:2048 -keyout ca_key.pem -nodes -sha512 -days 4096 -subj '/C=IL/ST=Unknown/L=Unknown/O=Bla Bla/OU=BLA/CN=FOOO' -out ca.pem

e。自己署名証明書でcsrに署名します。

openssl x509 -in request.csr -out signed_cert.pem -req -signkey ca_key.pem -days 1001

f。署名済み証明書とcsrキーを1つのp12ファイルにエクスポートします。

openssl pkcs12 -export -in signed_cert.pem -inkey csr_private.key -out file.p12 -name "one"

結果:

秘密鍵に一致する証明書はありません

  1. 何が欠けていますか?私の最後のコマンドが正当でないのはなぜですか?
  2. 「keystore」の「one」privateKeyEntryを置き換えるために、「keytool -importkeystore」file.p12(前のステップで生成されているはずです)を実行することを計画しました。 既存のx509証明書と秘密キーをJavaキーストアにインポートする方法)でインポートする方法で提案されています。基本的には、そのエントリを編集して、同じキーを持ち、証明書が異なるようにしています。
10
yair

修正は、最後のコマンド(f)に「-nodes」を追加することです。
2番目のコマンドでは、キーが「-nodes」でエクスポートされました(DES暗号化なし)。最後のコマンドでも同じである必要があります。

8
yair