signtool がタイムスタンプによる SHA2 と SHA1 の二重署名に失敗する 質問する

signtool がタイムスタンプによる SHA2 と SHA1 の二重署名に失敗する 質問する

signtool.exe を使用してバイナリを SHA1 と SHA2 で二重署名する必要があります。証明書は 256 ビット SHA2 をサポートしています。

Windows 8 SDK の signtool を使用する:

例えば:

signtool.exe 署名 /as /fd sha256 /thttp://timestamp.verisign.com/scripts/timstamp.dll/f "証明書.pfx" /p XXXXXXX "ファイル.dll"

(XXXXXXX は証明書のパスワードです)

不可解なエラーで失敗します:

SignTool エラー: SignedCode::Sign がエラーを返しました: 0x80070057 パラメータが正しくありません。SignTool エラー: 署名中にエラーが発生しました: file.dll

タイムスタンプなしで署名することも、SHA1 または SHA256 として個別に署名することもできますが、二重署名する必要があり、タイムスタンプがないことはあり得ないことです。

signtool.exe の 32 ビット版と 64 ビット版を試し、Win7 と Win8 マシンで試し、コマンド ライン オプションをいろいろ試してみましたが、効果はありませんでした。この問題に遭遇した人はいますか?

ベストアンサー1

少し古いのは承知していますが、私はこのスレッドにたどり着きましたし、おそらく他の誰かもたどり着くでしょう。

最初に SHA1 で署名し、次に SHA256 で署名すると機能します。

signtool.exe sign /f cert_file.pfx /t http://timestamp.comodoca.com/authenticode /p cert_password
signtool.exe sign /f cert_file.pfx /as /fd sha256 /tr http://timestamp.comodoca.com/rfc3161 /td sha256 /p cert_password 

両方の署名で同じ証明書を使用して動作しました。Windows 10 SDK の signtool を使用しましたが、以前のバージョンで動作するかどうかはわかりません。

おすすめ記事