SSLならセクティゴ・コモドのEV・企業・ドメイン認証

SSLならセクティゴ・コモドのEV・企業・ドメイン認証

サポート


こちらからサポート記事を検索いただけます

検索キーワード:

署名方法について (コード証明書関連)

gcloud CLIを使用して実行ファイルexeに対してデジタル署名を行う手順

Gcloud CLI単体では、Windows実行ファイル(.exe)に対して直接デジタル署名を行う機能はありません。

Windows実行ファイルへのデジタル署名(Microsoft Authenticode)は、**Windows標準の署名ツールであるSignTool.exe**を使用し、Google Cloud KMS CNG Providerを介してCloud KMS(Cloud HSM)に保管されている秘密鍵を利用することで実行されます。

gcloud CLIは、主に認証と鍵の作成/管理に使用されます。

以下に、Cloud KMSに格納された鍵を使用して.exeファイルに署名するための手順の概要を説明します。

1. 事前準備 (Cloud KMS / Windows環境)

1. 鍵の準備 Cloud KMSで目的が「ASYMMETRIC_SIGN」、保護レベルが「HSM」の非対称署名鍵を作成します。(gcloud kmsコマンドまたはコンソールを使用)。
2. 証明書の取得 セクティゴ認証局 (CA) からコード署名証明書を取得します。この際、秘密鍵はCloud KMSに保管されているため、CSR (Certificate Signing Request)を作成し、HSMのアテステーション(鍵がHSMで生成されたことの証明)をCAに提出する必要があります。
3. Windows SDKのインストール 署名に必要な**SignTool.exeが含まれるWindows SDK**をWindowsマシンにインストールします。
4. CNG Providerのインストール Google Cloud KMS CNG ProviderをWindowsマシンにインストールします。これにより、SignToolがCloud KMSの鍵を操作できるようになります。


2. 署名前の認証 (gcloud CLIの役割)

署名を実行するWindowsマシンで、SignToolがCloud KMSにアクセスできるように認証情報を設定します。

gcloud認証コマンド実行例:

gcloud auth application-default login
このコマンドにより、アプリケーションのデフォルト認証情報 (ADC) が設定され、CNG Provider経由でSignToolがCloud KMSの署名操作権限を使用できるようになります。

3.SignTool.exeを使用した署名

認証が完了したら、SignTool.exeを使用して.exeファイルに署名を実行します。この際、**/cspと/kc**オプションでCloud KMSの鍵を指定します。

署名コマンドの実行例(PowerShell)

signtool sign /v /debug /fd sha256 /td sha256 /tr http://timestamp.sectigo.com /f [証明書ファイル名].crt /csp "Google Cloud KMS Provider" /kc projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING_NAME]
/cryptoKeys/[KEY_NAME]/cryptoKeyVersions/[KEY_VERSION] [署名対象のファイル名].exe


オプション 説明
/v /debug vで検証モード debugでデバックモード
/f [ファイル名].crt 弊社認証局から取得したコード署名証明書のファイルパスを指定します。秘密鍵は不要です。
/csp "Google Cloud KMS Provider" 使用する暗号化サービスプロバイダー (CSP) としてGoogleのCNG Providerを指定します。
/kc projects/... Cloud KMSの鍵バージョンへの完全なリソースパスを指定します。この鍵が署名操作に使用されます。
/fd sha256 ファイルのダイジェストアルゴリズム(ハッシュ)を指定します。(通常はSHA256)
/td sha256 タイムスタンプのダイジェストアルゴリズムを指定します。
/tr [TSA URL] タイムスタンプ局 (TSA) のURLを指定します。これにより署名に信頼性が付与されます。



補足:Jsignの使用

別の署名方法として、JavaベースのJsignツールを使用することもできます。JsignはCloud KMSをネイティブにサポートしており、Windows以外のOSからも署名操作を実行できます。

Jsignを使用した署名コマンド実行例

java -jar jsign.jar --storetype GOOGLECLOUD \
--storepass $(gcloud auth application-default print-access-token) \
--keystore projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING_NAME] \
--alias [KEY_NAME] \
--certfile [証明書ファイル名].pem \
[署名対象のファイル名].exe
※ [証明書ファイル名].pem はセクティゴから提供される証明書にお読み換えてください

サポートトップへ

インストール関連

署名方法について

トラブルシューティング

その他