SafeNet eToken による拡張検証 (EV) コード署名の自動化 質問する

SafeNet eToken による拡張検証 (EV) コード署名の自動化 質問する

最近、DigiCert EV コード署名証明書を購入しました。signtool.exe を使用して .exe ファイルに署名できます。ただし、ファイルに署名するたびに、SafeNet eToken パスワードの入力を求められます。

パスワードをどこかに保存/キャッシュすることで、ユーザーの介入なしにこのプロセスを自動化するにはどうすればよいでしょうか?

ベストアンサー1

このスレッドに既にある回答を拡張すると、Microsoft の標準の signtool プログラムを使用してトークン パスワードを提供することが可能です。

0. SafeNetクライアントを詳細ビューで開く

インストール パスは異なる場合がありますが、私の場合、SafeNet クライアントは次の場所にインストールされます。C:\Program Files\SafeNet\Authentication\SAC\x64\SACTools.exe

右上の歯車アイコンをクリックして「詳細表示」を開きます。SafeNet 詳細表示

1. SafeNetクライアントから公開証明書をファイルにエクスポートします。 証明書をファイルにエクスポートする

2. 秘密鍵コンテナ名を見つける
秘密鍵コンテナ名

3. 読者名を見つける 読者名

4. すべてをまとめてフォーマットする

eToken CSP には、コンテナ名からトークン パスワードを解析する隠された (または少なくとも広く宣伝されていない) 機能があります。

形式は次の 4 つのオプションのいずれかになります。

[]=name
[reader]=name
[{{password}}]=name
[reader{{password}}]=name

どこ:

  • readerSafeNetクライアントUIの「リーダー名」です
  • passwordトークンのパスワードは
  • nameSafeNetクライアント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

おすすめ記事