これは、Azure DevOps を eSigner CodeSignTool と統合して自動コード署名を実行する方法に関するガイドです。
CodeSignTool は、クラウド コード署名プロセスに適しており、さまざまな CI/CD プラットフォームとシームレスに統合するコマンド ライン ユーティリティです。 これは eSigner の一部を形成します。これは、コード署名に対する効率的で安全で使いやすいアプローチを提供するリモート署名サービスです。
環境変数
- USERNAME: SSL.com アカウントのユーザー名。 (必須)
- PASSWORD:SSL.comアカウントのパスワード(必須)
- CREDENTIAL_ID: 証明書に署名するための資格情報 ID。 credential_id が省略され、ユーザーが eSigner コード署名証明書を XNUMX つしか持っていない場合、CodeSignTool はデフォルトでそれを使用します。 ユーザーが複数のコード署名証明書を持っている場合、このパラメーターは必須です。 (必須)
- TOTP_SECRET: OAuth TOTP シークレット。 の詳細情報にアクセスできます。 https://www.ssl.com/how-to/automate-esigner-ev-code-signing (必須)
- ENVIRONMENT_NAME : 「TEST」または「PROD」環境。 (必須)
入力
- 入力ファイルパス: 署名するコード オブジェクトのパス。 (必須)
- 出力ディレクトリのパス: 署名されたコード オブジェクトが書き込まれるディレクトリ。 output_path を省略すると、-file_path で指定されたファイルが署名付きファイルで上書きされます。
visualstudio.com でプロジェクトを作成する
コード エディターで新しい .yml ファイルを作成します。
統合トリガーと環境変数を設定する
継続的インテグレーションのトリガー
引き金:
- なし
環境変数をグローバルに定義します。 ジョブ レベル プロパティはグローバル変数をオーバーライドします
変数:
buildConfiguration: 'リリース'
ジョブをステージにグループ化する
ビルド ステージの手順を記述します。 次のステージを実行する前に、XNUMX つのステージのすべてのジョブを完了する必要があります。
ステージ:
– ステージ: ビルド
# ワークフローが実行されると、これはログに記録される名前です
displayName: ビルド
仕事:
- 仕事:
プール:
Windows VM でジョブを実行する
vmImage: 'windows-latest'
手順:
ドットネット 6.0.x をインストールする
– タスク: UseDotNet@2
displayName: 'Install .NET Core SDK'
入力:
バージョン: '6.0.x'
performMultiLevelLookup: 真
includePreviewVersions: true
Dotnet プロジェクトを復元する
– タスク: DotNetCoreCLI@2
displayName: 復元
入力:
コマンド: 「復元」
リリース構成で dotnet プロジェクトをビルドする
– タスク: DotNetCoreCLI@2
displayName: ビルド
入力:
コマンド: ビルド
プロジェクト: HelloWorld.csproj
引数: '–configuration $(buildConfiguration)'
署名済みアーティファクト用のディレクトリを作成する
– powershell: New-Item -ItemType ディレクトリ -Path ./artifacts
displayName: 'アーティファクト用のディレクトリを作成しました'
署名済みパッケージのディレクトリを作成する
– powershell: New-Item -ItemType ディレクトリ -Path ./packages
displayName: 'パッケージ用のディレクトリを作成しました'
アーティファクトを署名パスにコピー
– powershell: Copy-Item ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll
displayName: 「ビルドされたアーティファクトをパッケージ ディレクトリにコピーする」
署名ジョブを使用するためにアーティファクトを保存します
– タスク: PublishBuildArtifacts@1
displayName: 'ダウンロード用の署名付きアーティファクトとして保存'
入力:
公開するパス: ./packages/HelloWorld.dll
アーティファクト名: HelloWorld.dll
Sign ステージの手順を記述する
– ステージ: サイン
# ワークフローが実行されると、これはログに記録される名前です
displayName: 記号
仕事:
- 仕事:
プール:
Ubuntu VM でジョブを実行する
vmImage: 「Ubuntu 最新」
手順:
署名済みアーティファクト用のディレクトリを作成する
– スクリプト: mkdir -p ./artifacts && mkdir -p ./packages
displayName: 「アーティファクトとパッケージ用に作成されたディレクトリ」
署名するアーティファクトをダウンロードする
– タスク: DownloadPipelineArtifact@2
入力:
アーティファクト: HelloWorld.dll
ダウンロードパス: ./packages
Docker 17.09.0-ce をインストールします。
– タスク: DockerInstaller@0
表示名: Docker インストーラー
入力:
ドッカーバージョン: 17.09.0-ce
releaseType: 安定
Docker Pull CodeSigner Docker イメージ
– スクリプト: docker pull ghcr.io/sslcom/codesigner:latest
displayName: 'Docker プル CodeSigner Docker イメージ'
CodeSigner Docker イメージでアーティファクトに署名する
– スクリプト: docker run -i –rm –dns 8.8.8.8 –network host –volume $PWD/packages:/codesign/examples –volume $PWD/artifacts:/codesign/output
-e USERNAME=$(ユーザー名) -e PASSWORD=$(PASSWORD) -e CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)
-e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:最新のサイン -input_file_path=/codesign/examples/HelloWorld.dll
-output_dir_path=/コードデザイン/出力
displayName: 'CodeSigner Docker イメージでアーティファクトに署名'
ダウンロード用に署名済みアーティファクトを保存する
– タスク: PublishBuildArtifacts@1
displayName: '署名済みアーティファクトをダウンロード用に保存'
入力:
公開するパス: ./artifacts/HelloWorld.dll
アーティファクト名: HelloWorld.dll
新しい .gitignore ファイルを作成する
次のように入力します。
ビン
オブジェクト
.vscode
メッセージ バーに「Created pipeline.yml」と入力し、 コミット (Comma Separated Values) ボタンをクリックして、各々のジョブ実行の詳細(開始/停止時間、変数値など)のCSVファイルをダウンロードします。
クリックに進みます 変更を同期 (Comma Separated Values) ボタンをクリックして、各々のジョブ実行の詳細(開始/停止時間、変数値など)のCSVファイルをダウンロードします。
visualstudio.com に進み、クリックします。 残り ダッシュボード上
ページを更新して yml ファイルを表示します
クリック パイプライン ダッシュボード上
次に、をクリックします。 パイプラインの作成
Azure Repos Git をクリックします。
YAML ファイルを選択します
クリック Variables ボタンの後に 新しい変数
各環境変数の値を配置し、 OK (Comma Separated Values) ボタンをクリックして、各々のジョブ実行の詳細(開始/停止時間、変数値など)のCSVファイルをダウンロードします。
+ 記号をクリックして、各変数を追加し続けます
すべての変数を配置したら、パイプラインの作成に進みます
パイプラインを実行する
クリック パイプライン ダッシュボードで。 パイプラインの XNUMX つのドット (その他のオプション) をクリックします。 クリック パイプラインを実行する。 最後に、 ラン
[ビルド] をクリックしてビルド ステージを開始します。
ビルド ステージの各ジョブが成功したかどうかを確認する
の横にあるドロップダウン矢印をクリックします。 ジョブ 各ビルド ジョブのステータスを確認するには
をクリックして署名ステージを開始します。 ジョブ
署名プロセスの各ステップが成功したかどうかを確認します
ビルド段階とサイン段階の両方が成功したかどうかを再確認します
Azure DevOps パイプラインのサンプル
作成した Azure DevOps パイプラインのサンプルを確認してください github.com/SSLcom/codesigner-azuredevops-sampleその他のリモート署名統合ガイド
- クラウド コード署名と CircleCI の統合
- Cloud Code Signing と GitHub Actions の統合
- クラウド コード署名と GitLab CI の統合
- Cloud Code Signing と Travis CI の統合
- Jenkins CI との Cloud Code Signing 統合
- クラウド コード署名と BitBucket の統合
- CI/CD サービスによるクラウド コード署名の自動化
カスタムソリューションが必要ですか?
専門知識とXNUMXつ星のサポートスタッフにより、カスタムソリューションやエンタープライズレベルの大量署名割引についてお客様と協力する準備ができています。 以下のフォームにご記入ください。ご連絡いたします。