使用法
- 名前: CodeSignTool を使用してアーティファクトに署名する
使用しています: sslcom/actions-codesigner@develop
と:
- CodeSignTool コマンド:
– get_credential_ids
: ユーザーに関連付けられた eSigner 資格情報 ID のリストを出力します。
– credential_info
: クレデンシャル ID に関連するキーと証明書の情報を出力します。
– sign
: 署名およびタイムスタンプ コード オブジェクト。
– batch_sign
: XNUMX つの OTP で複数のコード オブジェクトに署名し、タイムスタンプを付けます。
– hash
: 後で batch_hash_sign コマンドで使用するためにハッシュを事前に計算します。
– batch_sign_hash
: hash コマンドで事前に計算されたハッシュに署名します。
コマンド: 符号
- SSL.com アカウントのユーザー名。
username: ${{secrets.ES_USERNAME}}
- SSL.com アカウントのパスワード。
password: ${{secrets.ES_PASSWORD}}
- 証明書に署名するための資格 ID。
credential_id: ${{secrets.CREDENTIAL_ID}}
- OAuth TOTP シークレット (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secrets.ES_TOTP_SECRET}}
- 署名するコード オブジェクトのパス。
file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar
- 署名されたコード オブジェクトが書き込まれるディレクトリ。
output_path: ${GITHUB_WORKSPACE}/artifacts
入力
- ユーザ名: 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 (必須)
- ファイルパス: 署名するコード オブジェクトのパス。 (必須)
- 出力パス: 署名されたコード オブジェクトが書き込まれるディレクトリ。 output_path を省略すると、-file_path で指定されたファイルが署名付きファイルで上書きされます。
Java コード (Maven) JAR 署名のワークフロー例
ワークフローのコンポーネントを準備する
- エディターに Github フォルダーを作成します。 フォルダーにワークフローを含め、フォルダーの下に yml ファイルを作成します。
- プロジェクトの名前と関連するワークフローのタイプ
名前: Maven のビルドと署名
- プッシュでこのワークフローをトリガーする
オン: プッシュ
- 環境変数を作成する
- 環境変数は、サンプルを読みやすくするために使用されます。 上記のサンプル ワークフローのスクリーンショットでは、PROJECT_NAME、PROJECT_VERSION、および MAVEN_VERSION がオプションで省略されています。 これらの省略があっても、署名は続行できます。
env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
- エディターでジョブを定義する
ジョブ: build-and-sign-jar:
- Ubuntu Runner でジョブを実行する
ランオン: ubuntu-latest
- 名前を作成します。 ワークフローが実行されると、これがログに記録される名前になります。
名前: Maven を使用した Java 上の CodeSigner
ソース コードのチェックアウト、Java および Maven 環境のセットアップ、アーティファクト ディレクトリの作成の手順を概説します。
1) ワークフローがアクセスできるように、ソース コードをチェックアウトします。
手順: - 用途: actions/checkout@v2
2) ワークフローで使用する Java および Maven 環境をセットアップします。
- name: インストール Maven と Java の使用: s4u/setup-maven-action@v1.3.1 with: java-version: '${{env.JAVA_VERSION}}' maven-version: '${{env.MAVEN_VERSION}}'
3) アーティファクト ディレクトリを作成して、署名済みおよび未署名のアーティファクト ファイルを保存します。
- 名前: ディレクトリの作成 shell: bash run: | mkdir ${GITHUB_WORKSPACE}/アーティファクト mkdir ${GITHUB_WORKSPACE}/packages
4) Maven プロジェクトまたはソリューションとそのすべての依存関係を構築します。
jar ファイルが作成されたら、署名用に「packages」フォルダーにコピーします。
- この書面による署名の例のワークフローでは、複数のプロジェクト タイプが作成されました。 これが、サブフォルダーを作成することによって、異なるプロジェクト タイプのファイルが保持された理由です。 Java プロジェクト用に「java」という名前のサブフォルダーが作成されました。 上記のデモのスクリーンショットでは、「java」という名前のサブフォルダーを作成する必要がなかったため、これはスクリプトに含まれていません。
- 名前: Java プロジェクトのビルド シェル: bash 実行: | mvn clean install -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.瓶
署名およびアップロード ジョブの手順の概要を説明する
- 署名ジョブは、作成された JAR (アーティファクト) ファイルが CodeSignTool で署名されるステップです。
- 名前: Sign Artifact uses: sslcom/actions-codesigner@develop with:
署名とタイムスタンプ コード オブジェクト。
コマンド: サイン
SSL.com アカウントのユーザー名。
ユーザー名: ${{secrets.ES_USERNAME}}
SSL.com アカウントのパスワード。
パスワード: ${{secrets.ES_PASSWORD}}
証明書に署名するための資格 ID。
credential_id: ${{secrets.CREDENTIAL_ID}}
OAuth TOTP シークレット (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secrets.ES_TOTP_SECRET}}
署名するコード オブジェクトのパス。 (DLL、JAR、EXE、MSI ファイル vb…)
ファイルパス: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar
署名されたコード オブジェクトが書き込まれるディレクトリ。
output_path: ${GITHUB_WORKSPACE}/アーティファクト
- アップロード ジョブは、ワークフローのアーティファクトがアップロードされるステップであり、ジョブ間でデータを共有し、ワークフローが完了したらデータを保存できます。
- name: Upload Signed Files uses: actions/upload-artifact@v2 with: name: ${{env.PROJECT_NAME}}.jar path: ./artifacts/${{env.PROJECT_NAME}}.jar
Github Marketplace からビルド アーティファクト アップローダを取得する
コーディング スクリプトを確認する
構築、署名、およびアップロード ジョブの全体的なコーディング スクリプトは、以下の画像のようになります。 署名プロセスがスムーズに実行されるように、スクリプト内のスペルミスや誤った改行などのエラーを必ず修正してください。
環境変数を定義する
Github アカウントでプロジェクトの場所に移動します。 クリック タブ。 クリック 新しいリポジトリ シークレット ボタンをクリックして、コードの署名に必要な各環境変数の値を配置します。
コマンドラインで新しいリポジトリを作成する
Github 上のプロジェクトの場所に進み、プッシュ コマンドの各コンポーネントをコピーします。
プロジェクトをプッシュする
各プッシュ コマンド ラインをコード エディターに含めます。 完了すると、コードは自動的に Github にプッシュされます。
アーティファクトが eSigner CodeSignTool で署名されるのを待ちます
署名済みファイルをアップロードする
署名済みファイルをクリックしてアップロードします。
サンプル Github アクション パイプライン
私たちが作成した Github Actions パイプラインのサンプルをご覧ください github.com/SSLcom/codesigner-github-sample
その他の CI/CD リモート署名統合ガイド
- クラウド コード署名と CircleCI の統合
- クラウド コード署名と GitLab CI の統合
- Jenkins CI との Cloud Code Signing 統合
- Cloud Code Signing と Travis CI の統合
- クラウド コード署名と Azure DevOps の統合
- CI/CD サービスによるクラウド コード署名の自動化
カスタムソリューションが必要ですか?
専門知識とXNUMXつ星のサポートスタッフにより、カスタムソリューションやエンタープライズレベルの大量署名割引についてお客様と協力する準備ができています。 以下のフォームにご記入ください。ご連絡いたします。