9

実行可能ファイルにデジタル署名を適用しています。signtoolWindowsXPまたはWindowsVistaでの使用:

>signtool.exe sign /f "avatar.pfx" MyApp.exe

認証チェーン全体がデジタル署名に自動的に含まれます。

Windows 7以降、認定チェーン全体 含まれなく なり ました。次の証明書を手動で含める必要があります

  • あなたの鍵に署名しました
  • キーに署名した証明書に署名しました
  • ..。
  • ...含める証明書がなくなるまで

/acsigntoolユーティリティ付きのスイッチを使用してこれを行う必要があると言われています。

のMSDNドキュメントsigntoolから:

/ acFileName
署名ブロックに追加する追加の証明書を含むファイルを指定します。

証明書に署名した証明書のファイル名を取得するにはどうすればよいですか?

私はそのようなファイルを持っていないので、それはもっと混乱します。認定チェーンが組み込まれていない、デジタル署名された実行可能ファイルがあります。

ここに画像の説明を入力してください


Stackoverflowユーザーdavidcl にも同じ質問がありました。この自己回答の答えで、彼は私がする必要があると言います

ルート証明書、中間証明書、開発者証明書、および秘密鍵を含むPFXファイルを使用して署名を行います。
適切なPFXファイルを作成した後-それ自体がオデッセイでした...

しかし、彼は、認証チェーン全体を含むPFXをどのように作成したかについては説明していません。


も参照してください

4

2 に答える 2

7

OpenSSLforWindowsをインストールします。完了するとopenssl.exe、システムのどこかに実行可能ファイルができます。

次に、次のように進めます。

  1. openssl pkcs12 -in avatar.pfx -out avatar.pem -nodes

(ここに.pfxパスワードを入力する必要があります)

  1. openssl pkcs12 -in avatar.pfx -out mycert.pem -nodes -clcerts

(再びPW)

  1. openssl x509 -in mycert.pem -out mycert.cer -outform DER

次に、エクスプローラーを開き、mycert.cerをダブルクリックします。詳細を表示し、どこかで発行者について説明します。これはキーストアを発行した会社です。次の目標は、中間証明書と最終的なルート証明書を取得することです。運が良ければ、証明書に「Authority Information Access」と呼ばれる拡張機能があり、発行元の証明書を直接取得する場所を示します。運が悪ければ、OCSPアクセスのURLは「AuthorityInformation Access」に、CRLのURLは拡張機能「CRLDistributionPoints」にあります。これらは、少なくともベンダーの「ホームページ」について漠然とした考えを与えるはずです。疑問がある場合は、グーグルで検索するか、もう一度質問してください:)

ベンダーのページを表示している場合は、「CA証明書」または「中間証明書」に注意する必要があります。自分の証明書の「発行者」フィールドで見つけたものとまったく同じ名前のものをダウンロードする必要があります。

ここで面白い部分です。今見つけた証明書には、再び「発行者」フィールドがあります。発行者が同じ会社である場合(通常、VeriSignなどの大規模なCAの場合)、現在アクセスしている同じサイトに対応する証明書があります。そうでない場合は、前の手順を繰り返します。

「Subject」フィールドが「Issuer」フィールドとまったく同じである証明書が見つかるまで、この面倒な手順を繰り返します。これで完了です。これは、いわゆる「自己署名ルート証明書」です。

これらの証明書のほとんどは、「DER」/「ASN.1」/「X.509」形式で提供されます。選択できる場合は、「PEM」形式をダウンロードしてください。そうでない場合は、最初に証明書を「PEM」形式に変換する必要があります。に

openssl x509 -in cert.der -inform DER -out cert.pem

不足しているすべての証明書をPEM形式で入手したら

  1. 手順1で作成した初期ファイルavatar.pemをテキストエディタで開きます。

  2. 不足している証明書PEMファイルを別のウィンドウで開きます

  3. 不足している証明書(「----- BEGINCERTIFICATE-----」および「-----ENDCERTIFICATE-----」を含むファイル全体)をコピーして、avatar.pemに追加します。

  4. 結果を保存する

  5. 問題

openssl pkcs12 -export -in avatar.pem -out newavatar.pfx -name ""

新しいファイルで使用する新しいパスワードを入力する必要があります。

于 2011-07-11T18:55:58.420 に答える
1

上記のイアンのコメントへのマイナーな補遺「結局、私は.cerを取得するためのはるかに簡単な方法がありました...」。最近、Thawte Webページからコード署名pfxをエクスポートするときに、チェーン全体を含めるように指定できます。したがって、certmgr.mscを使用してpfxをインポートしてから、単一のThawte中間証明書をcodesign.cerファイルとしてエクスポートできます。次に、signtool/acスイッチでそれを使用します。古い署名付きアプリを用意する必要はありません。新しく署名したアプリのテストが有効になるように、ストアで一時証明書を必ず削除してください。-ウィリアム・クロフト

于 2013-07-12T01:32:22.010 に答える