メインコンテンツまでスキップ

クライアントツール

sslTrus は、リモートコード署名サービスに接続してファイル署名を完了するためのコマンドラインクライアントとデスクトップクライアントを提供します。

このうち、SignTool CLI はコマンドライン、スクリプト、自動化シナリオに適しています。macOS ユーザーは Homebrew を使用して SignTool CLI またはデスクトップクライアントをインストールおよび更新することもできます。

SignTool CLI​

SignTool CLI は、sslTrus が提供するリモートコード署名のコマンドラインクライアントで、インストール後の実行可能ファイル名は signtool です。

主に以下の機能を提供します:

機能コマンド説明
ファイル署名signtool signローカルファイルに対してリモートコード署名を実行
署名枠signtool quota証明書の残りおよび総署名枠を照会
クライアント更新signtool update現在のプラットフォームの最新クライアントを照会およびインストール
Windows KSPsigntool kspWindows Key Storage Provider のインストールと管理
Windows CSPsigntool cspWindows Cryptographic Service Provider のインストールと管理

KSP と CSP は Windows Provider 統合方式に属し、具体的な使用方法は Windows Provider を参照してください。

クライアントのダウンロード​

SignTool CLI は sslTrus クライアント公開ページからダウンロードできます:

sslTrus クライアント公開ページ

リリースページでは、各プラットフォームの最新クライアントインストールパッケージを提供しています。自動化シナリオでは、バージョンインデックス latest.json を通じて現在の最新バージョン情報を確認することもできます。

macOSユーザーはHomebrewを使って直接インストールすることもできます。詳細は以下の macOS Homebrew を参照してください。

クライアント情報の確認​

インストール完了後、以下を実行できます:

signtool --help

查看コマンドのヘルプを表示します。

現在のクライアントバージョンを確認します:

signtool --version

バージョン情報には、クライアントバージョン、ビルドrevision、実行プラットフォーム、ビルド時間などの情報が含まれます。

アクセス認証情報​

リモートコード署名サービスを利用する前に、以下を準備する必要があります:

  • Access Key
  • Access Secret
  • 証明書番号(Cert Code)

このうち、Access KeyとAccess Secretはリモートコード署名サービスへのアクセスに使用され、証明書番号は実際に署名を実行するコード署名証明書を指定するために使用されます。

SignTool CLIは、コマンド引数で認証情報を提供することも、環境変数から読み取ることもできます。

export ACCESS_KEY="your-access-key"
export ACCESS_SECRET="your-access-secret"

Access Secret は、環境変数、CI/CD シークレット、またはその他の安全な認証情報管理方法を通じて提供することを推奨します。

Access Secret を以下の方法で扱わないでください:

  • Git リポジトリにコミットする。
  • 公開スクリプトに書き込む。
  • ビルドログに出力する。
  • 信頼できない第三者システムに送信する。

リモートサービスアドレス​

デフォルトでは、SignTool CLI は sslTrus 本番サービスアドレスを使用するため、追加の設定は必要ありません。

NICSRS(www.nicsrs.com)環境を使用する場合は、コマンドに --address nicsrs を追加する必要があります。

signtool sign \
--address nicsrs \
--cert-code CERT_CODE \
--file app.exe

signtool quota および signtool update も --address nicsrs をサポートしています。

ファイル署名​

signtool sign を使用すると、ローカルファイルに対して直接リモートコード署名を実行できます。

最も基本的な署名コマンドは次のとおりです。

signtool sign \
--cert-code CERT_CODE \
--file app.exe

如果已經設定:

ACCESS_KEY
ACCESS_SECRET

SignTool CLI は対応するアクセス資格情報を自動的に読み取ります。

デフォルトでは SHA-2 を使用して署名を実行します。

出力ファイルの指定​

デフォルトでは、クライアントは元のファイルを直接上書きしません。

--out を使用して署名後の出力ファイルを指定できます:

signtool sign \
--cert-code CERT_CODE \
--file app-unsigned.exe \
--out app-signed.exe

元のファイルを上書き​

元のファイルを直接変更する必要がある場合は、次を使用できます:

signtool sign \
--cert-code CERT_CODE \
--file app.exe \
--override=true

--override を有効にすると、署名結果は直接入力ファイルに書き戻されます。

自動ビルド環境で使用する場合は、後続のステップで必要なのが元のファイルか署名済みのファイルかを確認してください。

プログラムの説明を指定​

プログラムの説明と URL を Authenticode 署名に書き込むことができます。

signtool sign \
--cert-code CERT_CODE \
--file app.exe \
--desc "Example Application" \
--url "https://example.com"

SHA-1 と SHA-2​

デフォルトでSHA-2が有効になっています:

signtool sign \
--cert-code CERT_CODE \
--file app.exe

SHA-1のみを使用:

signtool sign \
--cert-code CERT_CODE \
--file app.exe \
--sha1=true \
--sha2=false

同時に SHA-1 と SHA-2 を有効にする:

signtool sign \
--cert-code CERT_CODE \
--file app.exe \
--sha1=true \
--sha2=true

SHA-1は主に旧システムとの互換性のために使用され、新規プロジェクトでは通常、SHA-2の使用が優先されるべきです。

タイムスタンプ​

コード署名には、信頼できるタイムスタンプを同時に追加することが一般的に推奨されます。

SignTool CLI はデフォルトで署名に自動的にタイムスタンプサービスを設定します。パラメータでタイムスタンプサーバーを指定することもできます:

  • --timestamp-rfc3161:SHA-2署名に使用される RFC 3161 タイムスタンプサーバー。
  • --timestamp:SHA-1署名に使用される Authenticode タイムスタンプサーバー。

RFC 3161 タイムスタンプサーバーを指定する場合:

signtool sign \
--cert-code CERT_CODE \
--file app.exe \
--timestamp-rfc3161=http://timestamp.acs.microsoft.com

指定 Authenticode タイムスタンプサーバー:

signtool sign \
--cert-code CERT_CODE \
--file app.exe \
--timestamp=http://timestamp.sectigo.com

タイムスタンプを無効にしたい場合は、パラメータ値を空に設定します。

signtool sign \
--cert-code CERT_CODE \
--file app.exe \
--timestamp-rfc3161= \
--timestamp=

时间戳プロトコル、サーバーアドレス、および選択に関する推奨事項については、参考资料 を参照してください。

署名枠の照会​

使用方法:

signtool quota

現在のアクセス認証情報で可視なコード署名証明書の残高を照会できます。

出力内容は次のとおりです。

  • 証明書番号。
  • 証明書情報。
  • 残り署名回数。
  • 総署名回数。

JSON形式の出力が必要な場合:

signtool quota --json

也可以使用簡略表記:

signtool quota -j

签名次数的具体的な計算方法は、CLI、KSP、Jarsigner、またはビルドツールの呼び出し方法によって異なる場合があります。詳細なルールについては、署名回数の計算説明を参照してください。

クライアントの更新​

SignTool CLIは、現在のプラットフォームの最新バージョンの照会とインストールをサポートしています。

signtool update

更新プロセス中に、ダウンロードファイルのサイズとSHA-256が検証され、クライアントファイルの整合性が確認されます。

SignTool CLIがHomebrew経由でインストールされている場合は、引き続きHomebrewを通じてバージョンを管理することをお勧めします。両方の更新方法を同時に混用しないでください。

macOS Homebrew​

macOSユーザーは、sslTrus公式Homebrew Tapを通じてSignTool CLIまたはデスクトップクライアントをインストールできます。

公開リポジトリ:ssltrus-official/homebrew-tap

Homebrew Tapのインストール​

実行:

brew tap ssltrus-official/tap
brew trust ssltrus-official/tap

完了後、対応するクライアントをインストールできます。

SignTool CLI のインストール​

以下を実行します:

brew install ssltrus-official/tap/code-sign-cli

安装完了したら、次を実行できます:

signtool --version

クライアントが正常にインストールされているか確認します。

Homebrew におけるパッケージ名は以下の通りです:

code-sign-cli

実際にインストールされるコマンドラインプログラムの名称は次のとおりです:

signtool

デスクトップクライアントのインストール​

sslTrus コードサイニング用デスクトップクライアントをインストールします:

brew install --cask ssltrus-official/tap/code-sign-gui

対応する Homebrew Cask 名は以下のとおりです:

code-sign-gui

クライアントの更新​

クライアントが Homebrew でインストールされている場合、Homebrew を使用したアップグレードを推奨します。

まず、Homebrew のパッケージ情報を更新します。

brew update

升级 SignTool CLI:

brew upgrade ssltrus-official/tap/code-sign-cli

デスクトップクライアントをアップグレードします:

brew upgrade --cask ssltrus-official/tap/code-sign-gui

これにより、ローカルインストール版とHomebrewパッケージのメタデータを一致させることができます。

Windows Provider​

シナリオがSignTool CLIを直接呼び出すのではなく、Microsoft SignTool、Visual Studio、MSBuild、Advanced Installer、またはその他のWindowsソフトウェアがリモートのコード署名秘密鍵を直接使用する場合は、Windows Providerを使用する必要があります。

sslTrusが提供するもの:

  • KSP(Key Storage Provider):Windows CNG向け。
  • CSP(Cryptographic Service Provider):従来のWindows CryptoAPI向け。

Windows Providerを参照してください。

CI/CD自動署名​

継続的インテグレーションまたは自動ビルドプロセスで署名を実行する必要がある場合、必ずしもSignTool CLIを手動でインストールして呼び出す必要はありません。

たとえば、GitHub ActionsはsslTrus Code Sign Actionを直接使用できます:

- name: Sign files
uses: ssltrus-official/code-sign-action@v1
with:
access-key: ${{ secrets.SSLTRUS_ACCESS_KEY }}
access-secret: ${{ secrets.SSLTRUS_ACCESS_SECRET }}
cert-code: ${{ secrets.SSLTRUS_CERT_CODE }}
files: build/app.exe

GitHub Action は Linux、macOS、および Windows Runner をサポートしており、ビルドプロセス内で指定されたファイルに対して直接リモートコード署名を実行できます。

公開リポジトリ:ssltrus-official/code-sign-action

完全な設定については CI/CD とビルドツール を参照してください。

選択方法​

実際の使用状況に応じて、適切なクライアントまたは統合方法を選択できます。

シナリオ推奨方法
ターミナルでファイルを手動で署名するSignTool CLI
スクリプトを使用したバッチ署名呼び出しSignTool CLI
コード署名枠の照会SignTool CLI
macOS での CLI のインストールとアップデートHomebrew
macOS でのデスクトップクライアントの使用Homebrew
Microsoft SignTool などの Windows ソフトウェアからリモート秘密鍵を直接呼び出すKSP
従来の CryptoAPI ソフトウェアCSP
GitHub Actions による自動署名GitHub Actions
自社開発の署名クライアントリモートコード署名 API

アプリケーションが Windows KSP、CSP、またはその他の標準 Provider をすでにサポートしている場合は、通常は対応する標準統合方式を優先して使用する必要があります。署名プロセスを直接制御する必要がある場合は、SignTool CLI またはリモートコード署名 API を使用できます。