このガイドは、1 年 2023 月 XNUMX 日より前に発行された IV および OV コード署名証明書にのみ適用されます。 1年2023月XNUMX日より, SSL.com の組織検証 (OV) および個人検証 (IV) コード署名証明書は、連邦情報処理規格 140-2 (FIPS 140-2) USB トークンまたは eSigner クラウド コード署名サービスを通じて発行されています。 この変更は準拠しています コード署名キーのセキュリティを強化するための認証局/ブラウザ (CA/B) フォーラムの新しいキー ストレージ要件に準拠しています。
このチュートリアルでは、Azure KeyVaultに保存されているコード署名証明書と秘密鍵を使用してWindowsコマンドラインからファイルに署名する方法を示します。 これらの指示に従うには、次のものが必要です。
- An Azureアカウント
- A キーボールト
- A コード署名証明書 KeyVaultにインストールされています。 次のいずれかを実行できます。
- Azureサインツール 署名に使用するコンピューターにインストールされている
Azure Sign Toolとは何ですか?
Azureサインツール を提供するオープンソースユーティリティです サインツール Azure KeyVaultに格納されている証明書とキーの機能。 Windows PowerShellで次のコマンドを使用してAzureSign Toolをインストールできます(必須 .NET SDK):
dotnet tool install --global AzureSignTool
手順1:新しいAzureアプリケーションを登録する
まず、Key Vaultに接続して署名できるように、新しいAzureアプリケーションを登録する必要があります。
- サインイン Azureのポータル.
- MFAデバイスに移動する Azure Active Directory。 (クリック その他のサービス Azure Active Directoryアイコンが表示されていない場合。)
- クリック アプリの登録、左の列。
- クリック 新規登録.
- アプリケーションに 名前 をクリックして 登録する ボタン。 他の設定はデフォルト値のままにします。
- 新しいアプリケーションが登録されました。 に表示されている値をコピーして保存します アプリケーション(クライアント)ID、後で必要になるためです。
- クリック 認証.
- 詳細設定、セット パブリッククライアントフローを許可する 〜へ
Yes
.
- クリック Save.
ステップ2:クライアントシークレットを作成する
次に、クライアントシークレットを生成します。これは、署名時に資格情報として機能します。
- クリック 証明書と秘密 左側のメニューにあります。
- クリック 新しいクライアントの秘密.
- クライアントに秘密を与える 説明、必要に応じて有効期限を設定し、をクリックします Add
- コピー 値 あなたの新しいクライアントの秘密の 直ちに 安全な場所に保管してください。 次回ページが更新されると、この値はマスクされて取得できなくなります。
手順3:KeyVaultでアクセスを有効にする
次に、Azure KeyVaultでアプリケーションへのアクセスを有効にする必要があります。
- 署名に使用する証明書が含まれているKeyVaultに移動し、[ アクセスポリシー リンクをクリックします。
- クリック アクセスポリシーの追加.
- 主な権限、イネーブル
Sign
.
- 証明書のアクセス許可、イネーブル
Get
.
- クリック 何も選択されていません リンク、下 プリンシパルを選択、次に検索フィールドを使用して、前のセクションで作成したアプリケーションを見つけて選択します。
- クリック 選択
- クリック Add
- クリック Save.
- アクセスポリシーが設定され、ファイルへの署名を開始する準備が整いました。
ステップ4:ファイルに署名する
これで、ついにコードに署名する準備が整いました。
- 次の情報が必要になります。
- 以下は、Azure SignToolを使用してファイルに署名してタイムスタンプを付けるPowerShellのコマンドの例です。 ALLCAPSの値を実際の情報に置き換えます。
azuresigntool signed -kvu KEY-VAULT-URI -kvc CERTIFICATE-NAME -kvi APPLICATION-CLIENT-ID -kvs CLIENT-SECRET -tr http://ts.ssl.com/ -td sha256 実行可能パス
注: デフォルトでは、SSL.com は ECDSA キーからのタイムスタンプをサポートしています。
このエラーが発生した場合:The timestamp certificate does not meet a minimum public key length requirement
、ソフトウェア ベンダーに連絡して、ECDSA キーからのタイムスタンプを許可する必要があります。
ソフトウェア ベンダーが通常のエンドポイントの使用を許可する方法がない場合は、このレガシー エンドポイントを使用できます。http://ts.ssl.com/legacy
RSA タイムスタンプ ユニットからタイムスタンプを取得します。 - 署名が成功すると、次のような出力が表示されます(署名に失敗すると出力は生成されません)。
情報:AzureSignTool.Program [0] =>ファイル:test.exe署名ファイルtest.exe情報:AzureSignTool.Program [0] =>ファイル:test.exeファイルtest.exeの署名が正常に完了しました。 info PS C:\ Users \ Aaron Russell \ Desktop>
- 新しいデジタル署名の詳細は、ファイルのプロパティで確認できます。
注: Azure SignToolの作成者も提供しています ウォークスルー AzureDevOpsでツールを使用するため。
SSL.com EV コード署名 証明書は、最高レベルの検証により、不正な改ざんや侵害からコードを保護するのに役立ちます。 年間$ 249。 あなたがすることもできます EV コード署名証明書を大規模に使用する eSigner を使用してクラウドで。 自動化オプションを備えた eSigner は、エンタープライズ コードの署名に適しています。