1

Thawte が発行したコード署名証明書を使用して ActiveX コントロールに署名しようとしています。signtool.exe を使用して、コントロールに正常に署名できました。

ファイルのプロパティを見ると、「署名内の証明書を検証できません」と表示されています。

証明書を表示すると、「Windows には証明書を検証するための十分な情報がありません」と表示されます。

[証明書のパス] タブに、「この証明書の発行者が見つかりません」と表示されます。

Internet Explorer では、証明書は署名済みとして認識されますが、発行元が検証されていないという警告がユーザーに表示されます。

Thawte 開発者証明書にチェーンするルートおよび中間証明書と共に自分の証明書を含む単一の PFX ファイルを作成し、その PFX ファイルを使用してコントロールに再署名しようとしました。サイコロはありません。

助言がありますか?

4

1 に答える 1

2

質問には実際には正しい手順が含まれています。ルート証明書、中間証明書、開発者証明書、および秘密鍵を含む PFX ファイルを使用して署名を行います。また、タイムスタンプ サーバーを使用します。私の問題は、PFX に間違ったルート証明書が含まれていたため、署名に使用された証明書をルートに戻すことができなかったことです。

リクエストに応じて、PFX ファイルの作成方法に関する情報を以下に示します。以下で使用する cert2spc と pvk2pfx もプラットフォーム SDK に含まれています。

cert2spc certpath1.cer certpath2.cer certpath3.cer codesign.spc

.cer ファイルのリストには、ルート、中間、およびコード署名証明書が含まれており、codesign.spc が出力ファイルです。それで:

pvk2pfx -pvk privkey.pvk -spc codesign.spc

この方法で pvk2pfx を実行すると、秘密鍵のパスフレーズ、出力ファイルの場所、および出力ファイルのパスフレーズを求めるウィザードが開始されます。

最後に、signtool が実際のコード署名を行います。

signtool sign /f my_certificates.pfx /p my_passphrase /t http://timestamp.verisign.com/scripts/timstamp.dll my_activex_control.ocx

振り返ってみると、.spc ファイルと .pvk ファイルを直接使用するコード署名ウィザード (.NET SDK の一部であると思われる) である signcode.exe を使用することで、時間を節約できたかもしれません。

于 2010-05-14T18:56:22.627 に答える