25
4

6 に答える 6

40

結局、私はうまくいく手順を理解することができました。SPCファイルとKEYファイルから新しいPFXおよびCERコード署名証明書を生成する手順は次のとおりです。

  1. CodeSign.spcGoDaddyから新しい証明書を取得します。
  2. 期限切れのPFXからPEM形式の秘密鍵をエクスポートします。

    openssl.exe pkcs12 -in CodeSign.pfx -nocerts -out CodeSign.pem
    
  3. PEM形式の秘密鍵をPVK形式に変換します。

    pvk.exe -in CodeSign.pem -topvk -strong -out CodeSign.pvk
    
  4. PVKとSPCをPFXに結合します。

    pvk2pfx.exe -pvk CodeSign.pvk -pi <passphrase> -spc CodeSign.spc -pfx CodeSign.pfx -po <passphrase> -f
    
  5. 結果のPFXファイルをWindows証明書ストアにインポートします。エクスポート可能にすることを忘れないでください。

  6. 証明書ストアからバイナリCER形式にとしてエクスポートしますCodeSign.cer
  7. オプションで、Windows証明書ストアから証明書を削除します。

証明書を定期的に更新する場合は、PVKファイルを保存して、手順(2)と(3)をスキップできます。

更新: SPC形式ではなくCRTの証明書を使用している場合は、次の手順を実行してSPCに変換します。

openssl crl2pkcs7 -nocrl -certfile CodeSign.crt -outform DER -out CodeSign.spc

出典:

必要なツール:

  • OpenSSL
  • pvk.exe—そのページの下部にあるダウンロードリンクを参照してください(元の場所にアクセスできない場合があります。そのような場合は、ミラーサイトへのリンクまたは別の直接ダウンロードリンクを含むこの記事を参照してください)
  • pvk2pfx.exe— Microsoft SDKの一部であり、VisualStudio2010とともにインストールされます
于 2011-03-24T15:20:04.440 に答える
14

私も同様の問題を抱えており、解決策を探すために少なくとも数時間を費やしました。GoDaddyから.spcファイルと.pemファイルが提供されましたが、OpenSSLを使用している場合は.pfxファイルを作成できませんでした。最後に、MMCを使用してローカルコンピューター内に.spcファイルをインポートしました。証明書がローカルマシンにインポートされると、コード署名証明書ファイル自体と一緒にGoDaddyのチェーンファイルが取り込まれることに気付きました。MMCビュー

次に、両方のファイルを選択し、右クリックして.pfxファイルとしてエクスポートします。ファイルを保護するためのパスワードを入力すれば完了です。これは、これが最も単純で簡単なソリューションです。この投稿が多くの人々に役立つことを願っています。

于 2018-10-01T17:42:32.853 に答える
11

opensslでのみPFXを作成できます。

  1. 期限切れのPFXからPEM形式の秘密鍵をエクスポートします。

    openssl pkcs12 -in CodeSign.pfx -nocerts -out CodeSign.pem
  2. PFXを作成する

    openssl pkcs7 -in CodeSign.spc -inform der -print_certs | openssl pkcs12 -export -inkey CodeSign.pem -out CodeSign.pfx
于 2018-09-18T12:40:40.373 に答える
3

現在の回答の投稿は、期限切れの証明書ファイル(.pfxまたは.p12)からGoDaddyを使用して新しいファイルに移動する最終ステップで非常に役立ちましたが、証明書を生成する方法の最初のステップに関する情報が不足していることがわかりました元の証明書ファイルからの署名要求(CSR)。

同様の情報を探している他の人のために、これが私が最終的に使用したものです...

秘密鍵を取得します。

openssl pkcs12 -in certs-and-key.p12 -out privateKey.key

証明書を取得します。

注意:これにより、CA証明書が提供される可能性があります

openssl pkcs12 -in certs-and-key.p12 -out certificate.crt -nokeys

より良い方法:このコマンドを使用して、クライアント証明書のみを印刷します

openssl pkcs12 -in MacCossLabUW.p12 -clcerts

次に、出力を次の間にコピーします。

-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

それをcertificate.crtという名前のファイルに保存します

次に、秘密鍵と証明書がコマンドと一致することを確認します。

openssl rsa -noout -modulus -in privateKey.key | openssl md5
openssl x509 -noout -modulus -in certificate.crt | openssl md5

次に、新しいCSRを生成します。

openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key

CSRを使用して、証明書のキーを再入力します。

GoDaddyソフトウェア発行証明書(.spc)ファイルをダウンロードします。

生成された証明書が要求の秘密鍵と一致することを確認します。

openssl pkcs7 -inform DER -in certificate.spc -print_certs

次に、証明書の間に出力をコピーします(注:出力にはCA証明書も含まれます)。

-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

certificate-new.crtという名前のファイルに保存します

そして、次のコマンドを実行します。

openssl x509 -noout -modulus -in certificate-new.crt | openssl md5

出力は、秘密鍵と要求証明書で使用された前の呼び出しと一致する必要があります。

プロセスを完了するには、pvk2pfxを使用して回答に概説されている手順に従います。

また、この投稿の概略図は非常に役に立ちました。

PVK2PFXエラー0x80070490-キーに一致する証明書が見つかりません

于 2012-03-02T01:07:23.510 に答える
2

これを行う方法についてまだ答えを探している人のために、私はこれを理解するのに1日を費やし、この投稿にリストされていることを組み合わせて行う必要がありました。Windowsでgit-bashを使用している場合は、winptyopensslを使用してすべての呼び出しの先頭に追加する必要があります。そうしないと、voidでスタックします。疑似手順は次のとおりです。

  1. opensslを使用して秘密鍵とCSRを生成する
openssl req -newkey rsa:2048 -keyout private.key -out my.csr
  1. opensslで秘密鍵を使用してPVKを生成します
openssl rsa -in private.key -outform PVK -pvk-strong -out codesign.pvk
  1. GoDaddyでのコード署名証明書の生成にCSRを使用する
  2. GodaddyからZipをダウンロードし、SPCファイルを抽出します(OPで言及されているように)
  3. pvk2pfxを使用して、PVKファイルとSPCファイルをコード署名証明書に結合します。これは、signtool自体と同じSDK(およびディレクトリ)に含まれていました。
pvk2pfx.exe -pvk codesign.pvk -spc SPC_FILEPATH_HERE -pfx codesign.pfx -pi PVK_PASSWORD -po PFX_PASSWORD
于 2020-11-10T15:17:52.547 に答える
-1

IISから証明書要求を生成した場合(Windows 2012 ServerのIISでこれを実行しました)、要求を生成したサーバー/ PCで次の手順に従います-IISを開きます-トップレベルノード(サーバーノード)をクリックします-サーバーを開きます証明書の設定-右側のアクションの下にある[証明書の要求を完了する]をクリックします-spcファイルをサーバーにインポートします。

ここから、PFXファイルにエクスポートできます

于 2015-09-23T05:09:45.133 に答える