SSL.com

クラウド コード署名と GitLab CI の統合

これは、eSigner CodeSignTool を使用して GitLab CI で自動コード署名を行う方法に関するチュートリアルです。  CodeSignTool は、eSigner の一部を形成する安全なコマンド ライン ユーティリティです。当社のクラウド コード署名環境は、エンタープライズ コード署名を安全かつ効率的に簡単な方法で実行できるため、ソフトウェア発行者と開発者にメリットをもたらします。  以下のサンプル ワークフローは、eSigner を使用して GitLab CI で署名されている .NET DLL コードを示しています。

SSL.com EV コード署名 証明書は、最高レベルの検証により、不正な改ざんや侵害からコードを保護するのに役立ちます。 年間$ 249。 あなたがすることもできます EV コード署名証明書を大規模に使用する eSigner を使用してクラウドで。

今すぐ注文

環境変数

入力

.NET コード DLL 署名のサンプル ワークフロー

yml ファイルを作成する

ジョブをステージにグループ化します。 次のステージを実行する前に、XNUMX つのステージのすべてのジョブを完了する必要があります。

ステージ: - ビルド - サイン
 

環境変数をグローバルに定義します。 ジョブ レベル プロパティは、グローバル変数をオーバーライドします。

変数: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
 

定義 ビルドステージ

以下は、dll アーティファクトをビルドするジョブの定義です。

ビルド ドットネット:

 

  1. ジョブが実行されるステージを定義します。
  ステージ:ビルド

 

  1. 使用するイメージの完全な名前を配置します。 必要に応じて、レジストリ部分を含める必要があります。
 画像: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. ジョブの*前に*実行するスクリプトを定義します。 グローバルまたはジョブごとに設定できます。
before_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/packages

 

  1. ランナーによって実行されるシェル スクリプトを定義します。 DLL アーティファクトをビルドする
スクリプト: - dotnet build dotnet/${PROJECT_NAME}.csproj -c Release - cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${CI_PROJECT_DIR}/packages/${ PROJECT_NAME}.dll

 

  1. ジョブが成功した場合にジョブに添付するファイルとディレクトリのリストを指定します。
成果物: パス: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expire_in: 5 分
 

サインステージを定義する

以下は、dll アーティファクトに署名するジョブの定義です。

署名ドットネット アーティファクト:

 

  1. ジョブが実行されるステージを定義します。
  ステージ:サイン

 

  1. 使用するイメージの完全な名前を配置します。 必要に応じて、レジストリ部分を含める必要があります。
 画像: docker:19.03.0

 

  1. サービスを定義します。 これは `image` プロパティに似ていますが、指定されたサービスを `image` コンテナにリンクします。
サービス: - docker:19.03.0-dind

 

  1. 特定のジョブの環境変数を定義します。
  変数: コマンド: "sign"

 

  1. ジョブの*前に*実行するスクリプトを定義します。 グローバルまたはジョブごとに設定できます。
  before_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/packages

 

  1. ランナーによって実行されるシェル スクリプトを配置します。 CodeSignTool Docker イメージを使用して .NET dll アーティファクトに署名する
スクリプト: - docker pull ghcr.io/sslcom/codesigner:latest - docker run -i --rm --dns 8.8.8.8 --network host --volume ${CI_PROJECT_DIR}/packages:/codesign/examples --volume $ {CI_PROJECT_DIR}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:最新の ${COMMAND} -input_file_path=/codesign/examples/${PROJECT_NAME}.dll -output_dir_path=/codesign/output

 

  1. ジョブが成功した場合にジョブにアタッチする必要があるファイルとディレクトリのリストを指定するために使用できるスクリプトを記述します。
成果物: パス: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll expire_in: 1 日

 

  1. アーティファクトをロードする前のステージのジョブ名のリストを指定します。
依存関係: - build-dotnet

SSL.com EV コード署名 証明書は、最高レベルの検証により、不正な改ざんや侵害からコードを保護するのに役立ちます。 年間$ 249。 あなたがすることもできます EV コード署名証明書を大規模に使用する eSigner を使用してクラウドで。

今すぐ注文

ビルド段階を開始する

リポジトリを作成する

以下のスクリーンショットに示すように、Gitlab のコマンド ライン手順を参照してください。

フォルダーをプッシュする

これを行うには、 ターミナル メニュー、続いて 新しいターミナル.

ターミナルにプッシュ スクリプトを入力して、プロジェクトをプッシュします。 

ビルドボタンをクリックします

パイプラインをトリガーした後、ビルドに進みます

ビルドが成功したかどうかを確認する  

サインステージを開始する

アーティファクトへの署名に進む

コード署名が成功したかどうかを確認する

署名済みファイルをダウンロードできるようになりました

あなたは SSL.com Docker イメージのソース コードが含まれ、その使用方法が説明されている Github リポジトリ: https://github.com/SSLcom/ci-images 

サンプル Gitlab CI パイプライン

作成した Gitlab CI パイプラインのサンプルを確認してください github.com/SSLcom/codesigner-gitlabci-sample

その他の CI/CD リモート署名統合ガイド

カスタムソリューションが必要ですか? 

専門知識とXNUMXつ星のサポートスタッフにより、カスタムソリューションやエンタープライズレベルの大量署名割引についてお客様と協力する準備ができています。 以下のフォームにご記入ください。ご連絡いたします。

モバイル版を終了