Cloud Code Signing と Travis CI の統合

この記事では、eSigner CodeSignTool をパイプラインに統合して、Travis CI で自動コード署名を実行する方法を示します。 

eSigner は、USB トークンやネットワーク化された HSMS と同じレベルのセキュリティをより効率的かつ直感的な方法で提供するリモート コード署名プラットフォームです。  eSigner ツールキットの一部は CodeSignTool です。これは、Travis を含むさまざまな CI/CD 環境でエンタープライズ コード署名を実行するのに理想的な安全なコマンド ライン ユーティリティです。
SSL.com EV コード署名 証明書は、最高レベルの検証により、不正な改ざんや侵害からコードを保護するのに役立ちます。 年間$ 249。 あなたがすることもできます EV コード署名証明書を大規模に使用する 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 で指定されたファイルが署名付きファイルで上書きされます。

Java コード (Maven) JAR 署名のワークフロー例

プロジェクトを作成する

プロジェクトの下に、Travis 用のファイルを作成します。

ワークフローのコンポーネントを定義する

  1. ジョブを実行する CPU アーキテクチャを配置する

アーチ: amd64

  1. テストを実行するデフォルトの言語

言語: ジャワ

  1. ジョブを実行するオペレーティング システムを指定します

OS: リナックス

  1. 使用するUbuntuディストリビューションを書きます

dist: バイオニック

  1. 環境変数をグローバルに定義します。 ジョブ レベル プロパティは、グローバル変数をオーバーライドします。
  • TERM=dumb は Gradle プロジェクト インスタンスにのみ必要であることに注意してください。
  • ENVIRONMENT_NAME の下に、テスト署名の場合は「TEST」、ライブ署名の場合は「PROD」を配置します。

env:

  グローバル:

    – PROJECT_NAME="HelloWorld"

    – PROJECT_VERSION=”0.0.1”

    – TERM=ダム

    – ENVIRONMENT_NAME="テスト"

  1. ステージの順序を指定します。 次のステージを実行する前に、XNUMX つのステージのすべてのジョブを完了する必要があります。

ステージ:

  - 建てる

  - サイン

ビルド段階の概要  

仕事:

  次のとおりです。

        – ステージ: ビルド

  1. ジョブ名

      名前: ビルド Maven

  1. 使用する Ubuntu ディストリビューション

      dist: バイオニック

  1. 署名に docker コマンドを使用する  

      サービス:

        – ドッカー

  1. dotnet-cli を使用してプロジェクトをビルドする

      言語: ジャワ

  1. プロジェクトをビルドする Java のバージョン

      JDK:

      –oraclejdk17

  1. 高速化のために m2 ディレクトリをキャッシュする

      キャッシュ:

        ディレクトリ:

        – $HOME/.m2

  1. プロジェクトをビルドする前に実行する Before スクリプトを作成する

      before_script:

        # アーティファクト用のディレクトリを作成

        – mkdir -p ${TRAVIS_BUILD_DIR}/アーティファクト

        – mkdir -p ${TRAVIS_BUILD_DIR}/パッケージ

        # Maven ビルド オプションの設定

        – export MAVEN_CLI_OPTS=” –batch-mode –errors –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”

  1. プロジェクトをビルドするスクリプトを記述します。
  • この署名ワークフローの例では、複数のプロジェクト タイプが作成されました。 これが、サブフォルダーを作成することによって、異なるプロジェクト タイプのファイルが保持された理由です。 Java プロジェクト用に「java」という名前のサブフォルダーが作成されました。 上記のデモのスクリーンショットでは、「java」という名前のサブフォルダーを作成する必要がなかったため、これはスクリプトに含まれていません。

      スクリプト:

        # Maven オプションを使用して Maven プロジェクトをビルドする

        – mvn $MAVEN_CLI_OPTS クリーン インストール -f java/pom.xml

         # ビルドされたアーティファクトをアーティファクト ディレクトリにコピーします

        – cp java/target/${PROJECT_NAME}-${PROJECT_VERSION}.jar ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar

     

  1. ジョブが成功した場合にジョブに添付する必要があるファイルとディレクトリのリストを指定する方法を概説します。

      ワークスペース:

        作成:

          名前: maven-jar-artifacts

          パス:

            # 署名ジョブを使用するためにアーティファクトを保存します

            – ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar

サインステージの概要

 – ステージ: サイン

  1. ジョブ名を書きます

      名前: 署名 jar ファイル

  1. 使用する Ubuntu ディストリビューションを配置する

      dist: バイオニック

  1. 署名に Docker コマンドを使用する  

      サービス:

        – ドッカー

     

  1. 特定のジョブの環境変数を定義します。
  • 上のスクリーンショットでは、sign コマンドは、環境変数ではなく、sign スクリプトで直接定義されています。 BOTH メソッドは TravisCI で正しく署名できます。

      env:

        コマンド=”記号”

  1. dotnet-cli を使用してプロジェクトをビルドする

      言語: ジャワ

  1. プロジェクトをビルドする Java のバージョン

      JDK:

      –oraclejdk17

  1. プロジェクトをビルドする前にスクリプトを実行する前に

      before_script:

        # アーティファクト用のディレクトリを作成

        – mkdir -p ${TRAVIS_BUILD_DIR}/アーティファクト

        – mkdir -p ${TRAVIS_BUILD_DIR}/パッケージ

     

  1. プロジェクトをビルドするスクリプト

      スクリプト:

        # Docker Pull CodeSigner Docker イメージ

        – docker pull ghcr.io/sslcom/codesigner:latest

        # CodeSigner Docker イメージでアーティファクトに署名

        – docker run -i –rm –dns 8.8.8.8 –ネットワークホスト –volume ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

          –ボリューム ${TRAVIS_BUILD_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}.jar -output_dir_path=/codesign/output

  1. ジョブが成功した場合にジョブに添付する必要があるファイルとディレクトリのリストを指定するために使用されます。

      ワークスペース:

        使用します。

          – maven-jar-アーティファクト

        作成:

          名前: 署名済みの jar ファイル

          パス:

            # 署名済みアーティファクトを保存

            – ${TRAVIS_BUILD_DIR}/artifacts/${PROJECT_NAME}.jar

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

今すぐ注文

環境変数を定義する

Travis に移動し、 設定 (Comma Separated Values) ボタンをクリックして、各々のジョブ実行の詳細(開始/停止時間、変数値など)のCSVファイルをダウンロードします。

各変数の値を追加します

下にスクロールして 環境変数 セクションを開き、[追加] ボタンをクリックして、各変数の値を追加します。

Github リポジトリを作成する

Github でプッシュ コマンドを探す

エディターのターミナルでプッシュ コマンドを記述します。

ビルド ジョブが完了するまで待ちます

Travis では、コードをプッシュした後、ビルド ジョブが自動的に開始されます。

コード署名段階を開始する

 符号 のセクション コード署名ツール 署名プロセスを開始するには

仮想マシンの起動が完了するまで待ちます

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

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

Travis CI パイプラインのサンプル

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

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

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

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

SSL.com のニュースレターを購読する

SSL.comからの新しい記事と更新をお見逃しなく

常に最新情報を入手して安全を確保

SSL.com サイバーセキュリティの世界的リーダーであり、 PKI そしてデジタル証明書。サインアップして、最新の業界ニュース、ヒント、製品のお知らせを受け取ります。 SSL.com.

フィードバックをお待ちしております

アンケートにご協力いただき、最近のご購入についてのご意見をお聞かせください。