最近、DigiCert EV コード署名証明書を購入しました。signtool.exe を使用して .exe ファイルに署名できます。ただし、ファイルに署名するたびに、SafeNet eToken パスワードの入力を求められます。
パスワードをどこかに保存/キャッシュすることで、ユーザーの介入なしにこのプロセスを自動化するにはどうすればよいでしょうか?
ベストアンサー1
このスレッドに既にある回答を拡張すると、Microsoft の標準の signtool プログラムを使用してトークン パスワードを提供することが可能です。
0. SafeNetクライアントを詳細ビューで開く
インストール パスは異なる場合がありますが、私の場合、SafeNet クライアントは次の場所にインストールされます。C:\Program Files\SafeNet\Authentication\SAC\x64\SACTools.exe
1. SafeNetクライアントから公開証明書をファイルにエクスポートします。
4. すべてをまとめてフォーマットする
eToken CSP には、コンテナ名からトークン パスワードを解析する隠された (または少なくとも広く宣伝されていない) 機能があります。
形式は次の 4 つのオプションのいずれかになります。
[]=name
[reader]=name
[{{password}}]=name
[reader{{password}}]=name
どこ:
reader
SafeNetクライアントUIの「リーダー名」ですpassword
トークンのパスワードはname
SafeNetクライアントUIの「コンテナ名」です
おそらく、複数のリーダーが接続されている場合は、リーダー名を指定する必要があります。リーダーが 1 つしかないため、これを確認できません。
二重中括弧 ({{
および}}
) は構文の一部であり、コマンド ライン引数に含める必要があることに注意してください。
5. signtoolに情報を渡す
/f certfile.cer
/csp "eToken Base Cryptographic Provider"
/k "<value from step 4>"
- 必要なその他のsigntoolフラグ
signtoolコマンドの例は次のようになります
signtool sign /f mycert.cer /csp "eToken Base Cryptographic Provider" /k "[{{TokenPasswordHere}}]=KeyContainerNameHere" myfile.exe
この回答から抜粋した画像:https://stackoverflow.com/a/47894907/5420193