1. ホーム
  2. passwords

[解決済み] Extended Validation (EV) コードサイニングの自動化

2022-12-28 10:02:29

質問

最近、DigiCert EV コードサイニング証明書を購入しました。 signtool.exe を使用して、.exe ファイルに署名することができます。 しかし、ファイルに署名するたびに、SafeNet eToken のパスワードが要求されます。

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

どのように解決するのですか?

このスレッドで既に回答されている内容を発展させると、microsoft の標準的な signtool プログラムを使用して、トークン パスワードを提供することが可能です。

0. セーフネット クライアントを詳細表示で開く

インストールパスは異なるかもしれませんが、私の場合、SafeNetクライアントは以下の場所にインストールされます。 C:\Program Files\SafeNet\Authentication\SAC\x64\SACTools.exe

右上の歯車アイコンをクリックし、quot;advanced view"を開きます。

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

2. 秘密鍵のコンテナ名を探す

3. 読者名を探す

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

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

フォーマットは以下のいずれかです。

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

どこで

  • reader はセーフネット クライアントの UI にある「リーダー名」です。
  • password はトークンのパスワードです。
  • name はセーフネットクライアントの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