ページ更新日:2026/06/12
本ページでは、コードサイニング証明書が手元に届いた後、実際にEXE/MSIなどへ署名するまでの実務手順をステップ形式で解説します。
コードサイニング証明書の基本(OV・EVの違い、USBトークンが必須な理由)は コードサイニング証明書とは?電子署名の仕組みとOV・EVの違い を、価格・仕様は デジサート コードサイニング証明書(価格・仕様) をご覧ください。
USBトークンをPCで使うには、トークン管理ソフト SafeNet Authentication Client(SAC) が必要です。
デジサートの証明書発行案内に記載されたダウンロード先から入手してインストールしてください(バージョン・画面はOSや時期により異なります。最新の手順はデジサートの公式案内をご確認ください)。
初回利用時にトークンのパスワード設定(または初期パスワードからの変更)を行います。
パスワードの入力を規定回数連続で間違えるとトークンがロックされ、最悪の場合は証明書の再発行が必要になります。
パスワードは確実に管理し、担当者交代時の引き継ぎにも注意してください。
Windowsでの署名には Microsoft の signtool.exe を使います。単体配布はされておらず、以下のいずれかに同梱されています。
| 入手方法 | 備考 |
| Windows SDK | 「Windows SDK Signing Tools for Desktop Apps」のみの選択インストールも可能。パスの例:C:\Program Files (x86)\Windows Kits\10\bin\(SDKバージョン)\x64\signtool.exe(バージョンにより異なります) |
| Visual Studio | C++によるデスクトップ開発などのワークロードに同梱。「Developer Command Prompt」からはパス指定なしで signtool を実行可能 |
USBトークンをPCに挿した状態で、以下のコマンドで署名します(署名時にトークンのパスワード入力を求められます)。
signtool sign /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 /a setup.exe
/tr:RFC 3161 タイムスタンプサーバーのURL(デジサートは http://timestamp.digicert.com)/td SHA256:タイムスタンプのダイジェストアルゴリズム/fd SHA256:ファイルのダイジェストアルゴリズム/a:利用可能な証明書を自動選択。署名用PCに複数の証明書がある場合は /sha1(証明書のサムプリント) で明示指定する
PowerShellスクリプトへの署名は、PowerShell標準の Set-AuthenticodeSignature でも実行できます。
$cert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert Set-AuthenticodeSignature -FilePath .\script.ps1 -Certificate $cert -TimestampServer http://timestamp.digicert.com
署名済みスクリプトは、実行ポリシー AllSigned / RemoteSigned の環境でも実行できるようになります。
署名時にタイムスタンプ(/tr オプション)を付与しておくと、証明書の有効期限が切れた後も、配布済みバイナリの署名は有効なままになります(署名時点で証明書が有効だったことをタイムスタンプ局が証明するため)。
タイムスタンプなしで署名した場合、証明書の期限切れと同時に署名も無効扱いとなり、配布済みのファイルにも警告が再発します。
2025年12月以降、コードサイニング証明書の最大有効期限は459日(約15ヶ月) に短縮されました。更新サイクルが短くなった今、タイムスタンプ付与を必須の運用ルールにすることが最も重要な対策です。
配布前に署名が正しく付与されているか確認します。
signtool verify /pa /v setup.exe
| 確認方法 | 確認ポイント |
| signtool verify /pa /v | 署名チェーンの検証結果と、タイムスタンプ(Timestamp)が記録されているかを確認 |
| エクスプローラー | ファイルを右クリック →「プロパティ」→「デジタル署名」タブで署名者名・タイムスタンプを確認 |
Javaアプリケーション(JARファイル)への署名はJDK付属の jarsigner を使います。USBトークン内の秘密鍵はPKCS#11経由で参照します(構成例。eToken のPKCS#11ライブラリのパスは環境により異なります)。
# eToken のPKCS#11設定ファイル(例:eToken.cfg) name = eToken library = C:\Windows\System32\eTPKCS11.dll # 署名(タイムスタンプ付き) jarsigner -keystore NONE -storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg -tsa http://timestamp.digicert.com app.jar "(証明書のエイリアス)"
jarsignerでも -tsa によるタイムスタンプ付与を必ず行ってください。
デジサートのコードサイニング証明書は主にWindows・Java向けのソフトウェア署名に使用します。macOSアプリの配布には Apple Developer Program の証明書とNotarization(公証)が別途必要です。詳しくは コードサイニング証明書とは?電子署名の仕組みとOV・EVの違い のmacOSの項をご参照ください。
弊社では デジサート コードサイニング証明書(価格・仕様) を取り扱っています。審査・USBトークン受領までのやり取りも弊社がサポートします。
| 種類 | ご注文 |
| OV コードサイニング証明書(一般的なソフトウェア配布・スクリプト署名) | |
| EV コードサイニング証明書(SmartScreen即時信頼・カーネルドライバー署名) | |
| ご不明な点・お見積もり |
コードサイニング証明書とは?電子署名の仕組みとOV・EVの違い
EVコードサイニング証明書とは?OVとの違い・必要な場面・取得の流れ
2025年12月:デジサート コードサイニング証明書の有効期限が459日間に変更
デジサート コードサイニング証明書(価格・仕様)