コード署名ツール は、MicrosoftAuthenticodeおよびJavaコードオブジェクトにリモートで署名するための安全なプライバシー指向のマルチプラットフォームJavaコマンドラインユーティリティです。 電子署名者 EVコード署名証明書。 ファイルのハッシュはに送信されます SSL.com コード自体が送信されないように署名するため。 これは、機密ファイルに署名する必要があるが、署名のためにネットワーク経由で送信しない場合に理想的です。 CodeSignToolは、大量の署名や既存のCI / CDパイプラインワークフローへの統合のための自動バッチプロセスにも最適です。
CodeSignTool が署名できるすべてのファイルの種類を知るには、この記事を参照してください。 eSignerがサポートするファイルタイプ
方法の説明については signtool.exeまたはcertutil.exeを使用してEVコード署名を自動化する レビューしてください このハウツー.
代わりにesignerを使用してドキュメントに署名する場合は、 このDocSignToolガイドを参照してください.
CodeSignToolのインストール
CodeSignToolの現在のバージョンをインストールするには、OSに適したファイルをダウンロードして解凍するだけです。
Windows のダウンロードには Java ランタイムが含まれていますが、Linux/macOS バージョンでは Java ランタイムがコンピューターにインストールされている必要があることに注意してください。 コマンドの Windows バージョンはバッチ ファイル (CodeSignTool.bat
)およびLinux / macOSバージョンはシェルスクリプトです(CodeSignTool.sh
).
CodeSignToolの使用法の概要
使用法: CodeSignTool [-hV] [COMMAND] [PARAMETERS]
オプション:
-h
,--help
:ヘルプメッセージを表示して終了します。-V
,--version
:バージョン情報を表示して終了します。
コマンド:
get_credential_ids
: 特定のユーザーに関連付けられている eSigner クレデンシャル ID のリストを出力します。credential_info
: クレデンシャル ID に関連するキーと証明書の情報を出力します。sign
: 署名およびタイムスタンプ コード オブジェクト。batch_sign
: XNUMX つの OTP で複数のコード オブジェクトに署名し、タイムスタンプを付けます。hash
: 後で使用するためにハッシュを事前に計算しますbatch_hash_sign
batch_sign_hash
: 事前に計算されたハッシュに署名しますhash
パラメーター:
-access_token=<TOKEN>
:OAuth アクセストークン.-credential_id=<CREDENTIAL_ID>
: 証明書に署名するための資格 ID。-input_dir_path=<PATH>
: 署名するコード オブジェクトの入力ディレクトリ、ハッシュを計算するか、署名されていないファイルと対応するハッシュを選択して署名します。-input_file_path=<PATH>
: 署名されるコード オブジェクトのパス。-otp=<OTP>
: 認証アプリからの OAuth OTP 値。-output_dir_path=<PATH>
: 署名されたコード オブジェクトが書き込まれるディレクトリ。-password=<PASSWORD>
: SSL.com アカウントのパスワード。-program_name=<PROGRAM_NAME>
: プログラムの名前 (MSI インストーラーのみ)。-totp_secret=<TOTP_SECRET>
:OAuth TOTPシークレット-username=<USERNAME>
: SSL.comアカウントのユーザー名-override="true"
: 署名されたファイルを上書きします
-password="P!@^^ssword12"
).CodeSignToolコマンド
get_credential_ids
特定のユーザーに関連付けられている eSigner クレデンシャル ID のリストを出力します。 パラメーター -username
• -password
必要とされます。
使用法: CodeSignTool [-hV] get_credential_ids -username=<USERNAME> -password=<PASSWORD>
例:
CodeSignTool get_credential_ids -username=john.doe@example.com -password="P0z9@lxo41" Credential ID(s): - fe537ace-e132-52a9-c2e7-egcd2ac3f1e6
入力します CodeSignTool get_credential_ids
必要なパラメーターがないと、コマンドの使用法情報が表示されます。
資格情報
クレデンシャル ID に関連するキーと証明書の情報を出力します。 パラメーター -credential_id
, -username
, -password
必要とされます。
使用法: CodeSignTool [-hV] credential_info -credential_id=<CREDENTIAL_ID> -username=<USERNAME> -password=<PASSWORD>
例:
CodeSignTool credential_info -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" EVCS 証明書サブジェクト情報: - サブジェクト DN: OID.1.3.6.1.4.1.311.60.2.1.3。 .1.3.6.1.4.1.311.60.2.1.2=米国、OID.2.5.4.15=ネバダ、OID.20081614243=民間組織、CN=SSL Corp、SERIALNUMBER=NV26、O=SSL Corp、L=ヒューストン、 ST=テキサス、C=US - 証明書の有効期限: 21 年 21 月 37 日月曜日 2024:3:XNUMX EST - 発行者 DN: CN=SSL.com EV コード署名中間 CA RSA RXNUMX、O=SSL Corp、L=ヒューストン、ST=テキサス、C=米国
入力します CodeSignTool credential_info
必要なパラメーターがないと、コマンドの使用法情報が表示されます。
スキャンコード
署名前のマルウェア スキャンを有効にします。 これにより、コードの侵害を避けるために、ファイルをスキャンしてマルウェアの可能性がないか確認します。 マルウェアが検出された場合、コードの署名を防ぎます。
使用法: CodeSignTool scan_code [-hV] -credential_id=<credentialId> -input_file_path=<inputFilePath> -password=<password> [-program_name=<programName>] -username=<username>
SSL.com のマルウェア スキャン サービスのセキュリティ上の利点の詳細については、次の Web サイトをご覧ください。 専用のページ.
符号
署名およびタイムスタンプ コード オブジェクト。 パラメーター -username
, -password
, -input_file_path
必要とされます。 -credential_id
複数のeSignerコード署名証明書を持つユーザーにのみ必要です。 -output_dir_path
, -program_name
, -totp_secret
オプションです。
使用法: CodeSignTool sign [-hV] [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_file_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]
オプションのパラメータ:
- If
-credential_id
が省略され、ユーザーが持っているeSignerコード署名証明書はXNUMXつだけである場合、CodeSignToolはデフォルトでそれを使用します。 ユーザーが複数のコード署名証明書を持っている場合、このパラメーターは必須です。 - If
-output_dir_path
で指定されたファイルは省略されます-input_file_path
署名されたファイルで上書きされます。 CodeSignToolは、ファイルを上書きする前にユーザーにプロンプトを表示します。 - If
-program_name
MSIインストーラーに署名するときにが存在する場合、値はプログラム名として確認ダイアログに表示されます。 - If
-totp_secret
が存在する場合、CodeSignToolは署名用の時間ベースのOTPを計算し、ツールの自動使用を可能にします。 このパラメータが存在しない場合、ユーザーは手動でOTPを入力するように求められます。
例:
手動OTP入力:
CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -output_dir_path=signed -input_file_path=test.exe OTP を入力 - Enter キーを押して続行: 884646 コードが正常に署名されました: C:\Users\John Doe\Desktop\CodeSignTool-v1.0-windows\signed\test.exe
自動OTP生成:
CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -totp_secret=ii5gVvZ9G+WkxB3FauAnoL/z14AXSMistcE0jZMWWNSjQDlql2kt2D6Z+l8= -output_dir_path=signed -input_file_path=test.exe Code signed successfully: C:\Users\John Doe\Desktop\CodeSignTool-v1.0-windows\signed\test.exe
入力します CodeSignTool sign
必要なパラメーターがないと、コマンドの使用法情報が表示されます。
Error: invalid otp
ファイルに署名しようとすると、次のXNUMXつ以上の問題が原因である可能性があります。
- 認証アプリにスキャンしたQRコードが、コマンドのユーザー名、パスワード、クレデンシャルIDと一致しません。 これは、次の場合に発生する可能性があります。
- デバイスに2FA用に構成された複数のアカウントがあり、間違ったアカウントを選択しました。
- ログインクレデンシャルを次の目的で使用しようとしています 共有証明書、ただし、チームメートが共有するQRコードをアカウントからスキャンしました。
- 入力したOTPはすでに期限切れになっています。
- コマンドに無効なTOTPシークレットが含まれています。
バッチサイン
100 つの OTP で最大 XNUMX 個のコード ファイルに署名してタイムスタンプを付けます。 パラメーター -username
, -password
, -input_dir_path
必要とされます。 -credential_id
複数のeSignerコード署名証明書を持つユーザーにのみ必要です。 -output_dir_path
, -program_name
, -totp_secret
オプションです。
使用法: CodeSignTool [-hV] batch_sign [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_dir_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]
ユーザーがマルウェア チェックを伴うバッチ署名を実行したい場合は、まずバッチ内の各コード オブジェクトを scan_code
コマンドとその後、 batch_sign
コマンドを実行できます。
オプションのパラメータ:
- If
-credential_id
が省略され、ユーザーが持っているeSignerコード署名証明書はXNUMXつだけである場合、CodeSignToolはデフォルトでそれを使用します。 ユーザーが複数のコード署名証明書を持っている場合、このパラメーターは必須です。 - If
-output_dir_path
を省略すると、で指定されたファイル-input_dir_path
署名されたファイルで上書きされます。 CodeSignTool は、ファイルを上書きする前にユーザーにプロンプトを表示します。 - If
-program_name
MSIインストーラーに署名するときにが存在する場合、値はプログラム名として確認ダイアログに表示されます。 - If
-totp_secret
が存在する場合、CodeSignToolは署名用の時間ベースのOTPを計算し、ツールの自動使用を可能にします。 このパラメータが存在しない場合、ユーザーは手動でOTPを入力するように求められます。
例:
CodeSignTool batch_sign -username=john.doe@example.com -password="P0z9@lxo41" -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output OTP を入力 - 455145 EnterXNUMX を押して続行しますXNUMX:バッチ署名コマンドが正常に実行されました。 署名されたファイルの出力ディレクトリ: output
入力します CodeSignTool batch_sign
必要なパラメーターがないと、コマンドの使用法情報が表示されます。
ハッシュ
後で使用するためにハッシュを事前に計算します batch_hash_sign
コマンド。 パラメータ -input_dir_path
必要とされている。 -program_name
オプションです
使用法: CodeSignTool [-hV] hash -input_dir_path=<PATH> [-program_name=<PROGRAM_NAME>]
オプションのパラメータ:
- If
-program_name
MSIインストーラーに署名するときにが存在する場合、値はプログラム名として確認ダイアログに表示されます。
例:
CodeSignTool hash -input_dir_path=input ハッシュ コマンドが正常に実行されました。 ハッシュ ファイルは次の場所で作成されます。
入力します CodeSignTool hash
必要なパラメーターがないと、コマンドの使用法情報が表示されます。
バッチ署名ハッシュ
で事前計算された署名ハッシュ hash
コマンド。 パラメーター -access_token
, input_dir_path
, -otp
, output_dir_path
必要とされます。 -credential_id
複数のeSignerコード署名証明書を持つユーザーにのみ必要です。
使用法: CodeSignTool [-hV] batch_sign_hash -access_token=<ACCESS_TOKEN> [-credential_id=<CREDENTIAL_ID>] -input_dir_path=<PATH> -output_dir_path=<PATH> -otp=<OTP>
オプションのパラメータ:
- If
-credential_id
が省略され、ユーザーが持っているeSignerコード署名証明書はXNUMXつだけである場合、CodeSignToolはデフォルトでそれを使用します。 ユーザーが複数のコード署名証明書を持っている場合、このパラメーターは必須です。
例:
CodeSignTool batch_sign_hash -access_token=eyJraWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0IiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJTU 0wuY29tIEF1dGhlbnRpY2F0aW9uIFNlcnZpY2UiLCJleHAiOjE2MTQ4OTcxNDIsImlhdCI6MTYxNDg5MzU0MiwianRpIjoiZmI2OTZlNDUtMTIzOS00ZGE4LW I1MmYtODNkZDE2MTY3ZTM3IiwidXNlciI6eyJ1c2VyX2lkIjoxMzIyODU4LCJ1c2VyX2VtYWlsIjoiYWFyb24uZS5ydXNzZWxsQGdtYWlsLmNvbSIsInNzbF9 hY2NvdW50X2lkIjo0NzQzMDJ9LCJjbGllbnQiOnsiaWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0In19.fCKDs1igjsI UDG2sUN_2OTb90Jw1nKNPHcD1MyEUR6sHCv_aJmcvcaFRne_eKLHzeQ9WtT5y3Fb2ppc50kMnjPG6JgX5gnFMptMn-ySsI277CtKbkSn3u-WSDSovn51jPm82 4wTeJmuXEzdv9clRjTwp6VoM9eqHCIaDAd3MP2xpMaa35cZbDaaAFKQ7jxWo9dUuTZY7DsKK0p1LloUEnmNxtNimQ3GDwkj_M600WB1zYrhDL9_3oZKaXcUx9 qzHcBCLzGgeaZ0xdpZtADxmXDUCcmkZi20yQ53bxqVL2w00sJ73efKB7JGeGWVehO-ZlGs3PUQwooox1JgEgcsA -credential_id=fe537ace-e132-52a9 -c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output -otp=142392 Batch sign hash command executed successfully. Output directory for signed files: output
入力します CodeSignTool batch_sign_hash
必要なパラメーターがないと、コマンドの使用法情報が表示されます。