SSL.com

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

このチュートリアルでは、自動コード署名のために eSigner を CircleCI と統合する方法を示します。 eSigner は SSL.com のコード署名用クラウド環境です。 署名キーと証明書は、SSL.com によってクラウドで安全にホストされ、インターネットに接続された任意のデバイスからアクセスして署名できるため、eSigner はエンタープライズ コード署名に最適なプラットフォームの XNUMX つになっています。 eSigner ツールキットには、CodeSignTool が含まれています。 コマンドラインユーティリティ EVコード署名 CircleCI を含むさまざまな継続的インテグレーション/継続的デリバリー (CI/CD) プラットフォームで自動署名プロセスを作成するのに理想的です。 

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

今すぐ注文

環境変数

入力

ワークフローのコンポーネントを準備する (.NET コード DLL 署名)

  1. .circleci フォルダーを作成する

コード署名ワークスペースで、 .circleci フォルダー. その下に、 config.yml ファイル.

  1. CI バージョンを設定する
バージョン:2.1
 
  1.  ワークフローを介してジョブを呼び出します。 ワークフローは、実行する一連のジョブを調整します。 このパイプラインのジョブは以下で構成されています

以下を参照してください。 https://circleci.com/docs/2.0/configuration-reference/#workflows

ワークフロー:
 
  1. ワークフローの名前を書きます。
  ドットネット:
 
  1. ワークフロー内で、実行するジョブを定義します。
 ジョブ: - ビルド - 署名: 必要: - ビルド
 

ビルド ステージを定義する

  1. ワークフローで後で呼び出されるジョブを定義します。

 (参照: https://circleci.com/docs/2.0/configuration-reference/#jobs)

ジョブ: ビルド:

 

  1. 環境変数を作成する
  環境: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 ワークスペース: /home/circleci/project

 

  1.  Docker executor を定義します: (https://circleci.com/docs/2.0/executor-types/)

    # Dockerhub からイメージを指定するか、CircleCI の Developer Hub から便利なイメージの XNUMX つを使用できます。

 ドッカー: - 画像: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. ジョブの作業ディレクトリを配置します
  作業ディレクトリ: /home/circleci/project

 

  1. ジョブにステップを追加する

    参照: https://circleci.com/docs/2.0/configuration-reference/#steps

  手順:

 

  1.  ワークフローがアクセスできるように、ソース コードをチェックアウトします。
    - チェックアウト

 

  1. アーティファクト ディレクトリを作成して、署名済みおよび未署名のアーティファクト ファイルを保存します
    - run: name: Create Artifacts Directory コマンド: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/packages

 

  1.  dotnet プロジェクトまたはソリューションとそのすべての依存関係をビルドします。
      - run: name: Build Dotnet Project コマンド: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release

 

  1. アーティファクトをアーティファクト ディレクトリにコピーする
  - run: name: Copy Artifacts コマンド: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll

 

  1. アーティファクトを署名用のアーティファクト ディレクトリに永続化する
  - persist_to_workspace: root: . パス: - パッケージ/*
 

署名段階を定義する

  1. 署名ジョブを定義する
 サイン:

 

  1. 環境変数を作成する
    環境: ENVIRONMENT_NAME: PROD COMMAND: sign WORKSPACE: /home/circleci/project

 

  1.     ジョブの作業ディレクトリを Circle-CI に配置する
 作業ディレクトリ: /home/circleci/project

 

  1. 署名するアーティファクト名
    パラメータ: アーティファクト名: タイプ: 文字列 デフォルト: ''

 

  1. docker executor を定義します。

 追加の参照については、以下を参照してください。 https://circleci.com/docs/2.0/executor-types/

       Dockerhub からイメージを指定するか、CircleCI の Developer Hub から便利なイメージの XNUMX つを使用できます。

       以下の Docker イメージ タグを、アプリケーションの openjdk バージョンに必ず更新してください。

       利用可能な CircleCI Docker Convenience Images のリストは、こちらから入手できます。 https://circleci.com/developer/images/image/cimg/openjdk

   ドッカー: - イメージ: cimg/openjdk:17.0.3

 

  1. ジョブにステップを追加する

      追加の参照については、以下を参照してください。 https://circleci.com/docs/2.0/configuration-reference/#steps

    手順:

 

  1. アーティファクト ディレクトリを作成して、署名済みおよび未署名のアーティファクト ファイルを保存します
  - run: name: Create Artifacts Directory コマンド: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/packages

 

  1. アーティファクト ファイルにアクセスするためにワークスペースにアタッチする
   - attach_workspace: at: /home/circleci/project

 

  1. Circle-CI で CodeSigner の Docker を有効にする
 - setup_remote_docker: name: リモート Docker のセットアップ バージョン: 19.03.13 docker_layer_caching: true

 

  1. Github レジストリから Codesigner Docker イメージをプルする
        - run: name: Docker Pull Image コマンド: | docker pull ghcr.io/sslcom/codesigner: 最新の docker pull alpine:3.4

 

  1. 成果物が CodeSignTool で署名されるステップを記述します。
 - run: name: Sign Artifact File コマンド: | docker create -v /codesign/packages --name codesign-in alpine:3.4 /bin/true docker create -v /codesign/artifacts --name codesign-out alpine:3.4 /bin/true docker cp ${WORKSPACE}/packages /<< parameters.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --network host --volumes-from codesign-in --volumes-from codesign- out -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:latest ${COMMAND} -input_file_path=/codesign/packages/<< parameters.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parameters.artifact-name >> ${ WORKSPACE}/artifacts/<< parameters.artifact-name >>

 

  1. ワークフローからアーティファクトをアップロードするステップを記述して、ジョブ間でデータを共有し、ワークフローが完了したらデータを保存できるようにします
    - store_artifacts: name: Upload Signed Files path: /home/circleci/project/artifacts/<< parameters.artifact-name >> 宛先: << parameters.artifact-name >>
 

コマンドラインで新しいリポジトリを作成する

GitHub アカウントのプロジェクトの場所からプッシュ コマンド コンポーネントをコピーします。

エディターにすべてのプッシュ コマンド コンポーネントを含めます

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

今すぐ注文

GitHub に統合されたリポジトリを使用して、CircleCI でプロジェクトをセットアップする

すべての環境変数を定義する

プロジェクトの実行中に、[プロジェクト設定] ボタンをクリックしてから、[環境変数] をクリックして変数を定義します。

各変数の値を配置します

クリック 環境変数を追加 ボタンをクリックして、プロジェクトに必要なすべての変数の名前と値を追加します。

プロジェクトがビルドされるのを待ちます

[ワークスペースに永続化] をクリックします

ワークスペース アーカイブが正常にアップロードされるまで少し待ちます。

サインボタンをクリック

リモート Docker がセットアップされるのを待ちます

ファイルのサイズによっては、XNUMX 分以上かかる場合があります。

アーティファクトが署名されるのを待ちます

クリック アーティファクト タブ

クリックすると アーティファクト、コード署名に成功したファイルを確認できます。 コード署名が成功したことも、CircleCI から通知されます。

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

サンプル CircleCI パイプライン

私たちが作成したサンプル CircleCI パイプラインを確認してください github.com/SSLcom/codesigner-circleci-sample

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

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

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

モバイル版を終了