Skip to main content

署名を管理する

Learn how to use SMCTL commands to manage signatures (sign, verify signature, remove signature), using flags to define the command parameters.

For signing, we offer traditional tool-based signing and simple signing.

Traditional signing and simple signing

Traditional signing

Pros

Cons

  • Requires the use of established third-party signing tools and libraries, such as signtool,jarsigner, and osslsigncode.

  • May require DigiCert-specific components, such as KSP or PKCS11 modules.

Simple signing

Pros

Cons

  • Uses the --simple flag to sign without the need of third-party tools, extra libraries, or external signing infrastructure.

  • Uses the --unsigned to ensure that only unsigned files are signed, preventing unintended re-signing.

注記

Simple signing is a newly introduced feature. We're working to expand its capabilities, including adding supported file types and metadata capturing.

前提条件

For traditional signing:

  • すべての署名に使用するツールについて、OSのパス変数に実行形式が存在する必要があります。

  • jarsigner、apksigner、jSign では、PKCS11 の設定ファイルは必須です。

  • 署名に使用する鍵ペアのエイリアスか証明書のフィンガープリントを指定してください。

For simple signing:

  • SMCTL

  • Access to signing key pairs

Configuration

For traditional signing:

  • Default tool selection: SMCTL selects the signing tool automatically based on your operating system.

  • Signature algorithm: Use the --sigalg string flag to specify the signature algorithm, depending on what the selected tool supports.

  • Digest algorithm: Use the the <--digalg string> flag to specify the digest algorithm, also based on the supported options of the tool.

  • Sign specific file: Use the <--tool string> flag to sign a specific file type.

    • For example, --tool apksigner signs only .apk files.

  • APK signer support: The minimum SDK version supported for apksigner is 18.

For simple signing:

  • No tool selection required: SMCTL handles the signing directly. You don't need to install or reference third-party tools.

  • No DigiCert libraries required: DigiCert KSP, PKCS11, or other local libraries aren't needed; only SMCTL is required.

Sign commands

Review the following two ways to begin a sign command:

smctl signature <keypair alias>

or

smctl sign <keypair alias >

Flags for simple signing

Review the following flags that can be used with the sign command for simple signing:

1. Flags for simple signing

Flag

Description

--simple

This flag signs without the need of third-party signing tools and libraries and only applies to simplified signing workflows.

--unsigned

This flag only signs unsigned files and only applies to simplified signing workflows.


Flags for traditional signing

Review the following flags that can be used with the sign command for simple signing:

2. 署名のコマンドは、以下のように始まります。

フラグ

説明

--all-metadata

すべての署名のメタデータをキャプチャします。デフォルトでは、すべてのメタデータをキャプチャします。

--certificate string

署名に使用する証明書のパス。

形式:

--certificate="<value>"

--checksum-after-signing

署名のメタデータをキャプチャ - 署名後のチェックサム。デフォルトでキャプチャするには空白のままにします。

--checksum-before-signing

署名のメタデータをキャプチャ - 署名されていないファイルの署名前のチェックサム。デフォルトでは、キャプチャは空白のままです。

--config-file string

PKCS11設定ファイルのパス。

形式:

--config-file="<value>"
  • --digalg string

  • -d (shortcut)

Specify the digest algorithm to use for signing (default based on the tool used for signing).

Format:

--digalg="<value>"

--digest-algorithm

Capture the digest algorithm in the signature metadata. Leave blank to capture by default.

--exit-non-zero-on-fail

Returns a non-zero status if any files fail to be signed during bulk signing.

--failfast

Stops bulk signing immediately upon encountering the first file that can't be signed.

--file-location

署名キャプチャのメタデータ - ファイルの場所。デフォルトでキャプチャするには空白のままにします。

--file-name

署名キャプチャのメタデータ - ファイル名。デフォルトでキャプチャするには空白のままにします。

  • --input string

  • -i (shortcut)

入力ファイルまたはフォルダのパス。フォルダを指定した場合は、そのフォルダ内のすべてのファイルに署名されます。

形式:

--input="<value>"

--keychain-path string

Provide the path to Keychain (This flag only applies to Apple productsign)

  • --keypair-alias string

  • -k (shortcut)

署名に使用する鍵ペアのエイリアス。

形式:

--keypair-alias="<value>"

--openssl-pkcs11-engine string

Provide the path to the OpenSSL PKCS11 engine.

注記

This flag only applies to osslsigncode.

--pkcs11-module string

Provide the absolute path to the PKCS11 library.

  • --sigalg string

  • -s (shortcut)

使用する署名アルゴリズム(デフォルトは、署名に使用したツールに基づく)。

形式:

--sigalg="<value>"

--signing-tool

署名キャプチャのメタデータ - 署名ツール。デフォルトでキャプチャするには空白のままにします。

--timestamp

タイムスタンプの有効・無効を設定します。デフォルトは有効です。

--timestamp-flag

署名のメタデータを取得する。(タイムスタンプが実行されたかどうか)デフォルトでキャプチャするには空白のままにします。

  • --tool string

  • -t (shortcut)

署名に使用するツール(空白のままだと拡張子で署名されます)。

形式:

--tool="<value>"

--tsa-url

署名のメタデータをキャプチャ - TSA URL (タイムスタンプURLを使用します)。デフォルトでキャプチャするには空白のままにします。

  • --verbose

  • -v (shortcut)

署名の冗長ロギング。

  • --help

  • -h (shortcut)

署名に関するヘルプ。


サブコマンド

署名コマンドは、これらサブコマンドをサポートしています。

smctl signature <subcommand>

or

smctl sign <subcommand>

3. 署名の管理のサブコマンド

サブコマンド

説明

remove

署名を削除する

verify

署名を検証する


Sample commands

Review the following sample command for traditional signing:

smctl sign MyKeyAlias --input="MyApp.exe" --tool=signtool --certificate="path/to/cert.pem" --config-file="path/to/pkcs11.cfg" --sigalg="SHA256" --digalg="SHA256" --all-metadata --timestamp --verbose

Review the following sample command for simple signing:

smctl sign MyKeyAlias --input="MyApp.exe" --simple --sigalg="SHA256" --digalg="SHA256" --verbose