Skip to main content

ビルド自動化プラグイン

自動化プラグインは、ネットワークアプライアンスやクラウドサービス上の証明書の検出と管理に使用されます。各自動化プラグインは、特定のシステムタイプの証明書へのアクセス、認証、および管理方法を定義します

デジサートは、カスタムプラグインの構築に役立つ GitHub サンプルリポジトリを提供しています。このページには、プロジェクトの構成要素と構築手順が記載されています。

開始する前に

Trust Lifecycle Manager のカスタムプラグインを構築する前に、以下の重要な前提条件を理解し、満たしておいてください。

プラグインの構築を開始するには、以下に示す GitHub の DigiCert 組織内のリポジトリへのアクセス権が必要です。

  • tlm-plugin-example-automation: Trust Lifecycle Manager の自動化プラグインのサンプル。独自のカスタムプラグインの構築に役立てるために、このリポジトリを出発点として活用します。

  • tlm-plugins-sdk: Trust Lifecycle Manager のプラグイン構築のための DigiCert ソフトウェア開発キット。サンプルプラグインリポジトリは、この SDK リポジトリに依存しています。

これらのリポジトリへのアクセス権をリクエストするには、DigiCert アカウント担当者またはソリューションエンジニアにお問い合わせください。これらのリポジトリを使用するには、GitHub のpersonal access token (classic) が必要であることに留意してください。

サンプルプラグインリポジトリは、Maven ビルドシステムに基づいた Java プロジェクトです。プラグインのビルドに使用するシステムは、以下の要件を満たしている必要があります。

  • Java 17 以降

  • Maven バージョン 3.6 以降

サンプルプラグインリポジトリを表示および使用するために、デジサートは、統合開発環境(Integrated Development Environment: IDE)を使用することを推奨します。IDE は、依存関係を解決し、プロジェクト開発環境を正しく構成できるよう支援します。

このページの手順は、Eclipse IDE にフォーカスしたものです。詳細については、『Eclipse の公式 Web サイト』を参照してください。

ビルドプロセスの概要

カスタムプラグインのビルドプロセスは、以下のステップで構成されます。

  1. GitHub の自動化プラグインサンプルリポジトリを複製します。

    リポジトリの URL は https://github.com/digicert/tlm-plugin-example-automation です。このリポジトリへのアクセス方法について質問がある場合は、デジサートのアカウント担当者またはソリューションエンジニアにお問い合わせください。

  2. プロジェクトを Java IDE にインポートします。

    以下の手順に従って、サンプルプラグインプロジェクトを Eclipse IDE にインポートします。他の Java IDE の場合もプロセスは同様です。

    1. Eclipse IDE を開き、[Import projects]のオプションを選択します。

    2. [Import]モーダル画面で、[Maven]>[Existing Maven Projects]に進み、[Next]を選択します。

    3. サンプルプラグインリポジトリを複製したルートフォルダに移動して、フォルダを選択します。

    4. フォルダを選択した後、[Projects]ウィンドウに /pom.xml がリストされるはずです。[Finish]を選択してインポートを進めます。

  3. Java IDE でプロジェクトファイルを確認します。

    Java IDE には、GitHub リポジトリと同じすべてのファイルに加えて、Java Runtime Environment(JRE)と Maven の依存関係のリストが表示されます。プラグインのプロジェクトファイル、依存関係、ビルドプロセスの詳細については、最上位レベルにある README.md ファイルを確認してください。

  4. 独自のカスタムコードと設定を追加してプロジェクトを更新します。

    重視すべき主要な構成要素については、以下の「プロジェクトファイル」と「ソースファイル」のセクションを参照してください。

  5. Maven プロジェクトをビルドして最終的な Zip ファイルを生成します。

    すべてをコンパイルしてパッケージ化するために、最上位のプロジェクトディレクトリにあるビルドスクリプト(build.sh)を実行します。詳細については、「プラグインの Zip ファイルをビルドする」のセクションを参照してください。

プロジェクトファイル

以下のファイルには、プラグインプロジェクトの重要な設定、依存関係、情報が含まれています。以下のファイルは、自動化プラグインサンプルが格納された最上位ディレクトリに含まれています。

プロジェクトファイル

説明

必要な更新

README.md

プロジェクトの README ファイルには、プロジェクトの依存関係、ファイル階層、ビルドプロセスなどの重要な詳細が含まれています。最善の結果を得るために、更新を行う前にこのファイルを慎重に確認してください。

pom.xml

Maven でのプロジェクトのビルドに必要なすべての情報が記述されています。これには中核的な依存関係、プラグイン、ビルド構成などが含まれます。

build-plugin-fat-jar 実行ブロックは、ランタイムに実行する Java のメインクラスを定義します。デフォルト値は次のとおりです。com.example.automation.MyAutomationPluginRunner

  • カスタムコードに追加の依存関係が含まれている場合は、その依存関係をこのファイルに含める必要があります。

  • プラグインでデフォルトとは異なるメインクラスを定義する場合は、build-plugin-fat-jar 実行ブロックの mainClass の値を更新します。

build.sh

Maven のアセットを生成し、Trust Lifecycle Manager にアップロードする最終的な Zip ファイルを作成することで、プロジェクトをビルドするためのシェルスクリプト。このスクリプトはまた、SHA-256 チェックサムを生成して Zip ファイルの完全性を確保します。

このスクリプトを実行する前に、settings.xml ファイルに、以下に記載された、必要なクレデンシャルを必ず含めます。

configuration.json

Trust Lifecycle Manager でプラグインを構成するためのデフォルトの JSON ファイル。プラグインを有効にするには、JSON 構成ファイルを最終的な Zip ファイルと一緒にアップロードする必要があります。

プラグインに必須のパラメータと一致するように、このファイルを更新します。詳細については、「プラグイン構成を作成する」を参照してください。プラグイン構成を作成する

settings.xml

Maven のビルドコマンドの実行に必要な設定が定義されています。これにはプラグイン SDK の中核的なファイルと依存関係が含まれた追加の GitHub リポジトリへのアクセスも含まれています。

GitHub Actions の一環としてビルドスクリプトを実行する場合は、必要なクレデンシャルが自動的に入力されます。それ以外の場合は、右側に記載されているとおり、クレデンシャルを提供する必要があります。クレデンシャルは、GitHub の personal access token (classic) から取得する必要があります。

ビルドスクリプトをローカルで実行するには、以下のいずれかの方法を使用して、必要な GitHub クレデンシャルを提供します。

  • クレデンシャルを settings.xml ファイルの username および password フィールドに追加します。

  • 以下の環境変数に、使用するクレデンシャルを設定します。GITHUB_ACTOR または GITHUB_USER(ユーザー名)と GITHUB_TOKEN(パスワード)

zip.xml

プラグインの最終的な Zip ファイルに含めるファイルのリストが定義されています。

ソースファイル

自動化プラグインサンプルでは、src/main/java 内に以下の Java ソースファイルが提供されています。カスタムプラグインを作成するには、以下のファイル内の該当するクラスとメソッドの定義を変更または拡張します。

ソースファイル

説明

カスタマイズ

MyAutomationPlugin.java

証明書ライフサイクル自動化の全体的なワークフローが定義されています。このファイルでは、AbstractAutomationWorkflow クラスが拡張され、Trust Lifecycle Manager でのすべての自動化ワークフローに共通のステップが定義されています。これには以下が含まれます。

いずれかの自動化ステップで行われる作業をカスタマイズするには、@Override がアノテーションされたメソッドにカスタムコードを追加します。

  • testConnection(): Verify connectivity to the target system.

  • generateCsr(): Generate a certificate signing request (CSR) for issuing a new certificate from Trust Lifecycle Manager.

  • installCertificate(): Install a certificate on the target system.

  • validateCertificate(): Validate that a certificate was installed successfully on the target system.

  • refreshConfiguration(): Refresh information about the target system stored in Trust Lifecycle Manager, including certificates and endpoint data, operating system version, and filesystem partitions.

MyAutomationPluginRunner.java

プラグインのエントリポイントとして機能します。MyAutomationPlugin.java で定義されたプラグインオブジェクトと、メソッド間での情報の共有とさまざまな実行ポイントでの結果の保存に必要な、SDK の context オブジェクトを起動します。

このクラスを更新する場合は、完全修飾クラス名を pom.xml ファイル内の情報と一致させてください。

MyPluginConfiguration.java

プラグインのターゲットシステムに接続して操作するために必要な構成パラメータが定義されています。たとえば、このファイルのデフォルトバージョンには、ロードバランサーアプライアンスの管理に典型的な、ユーザー名、パスワード、管理 IP およびポートなどの設定が定義されています。

ここで定義するすべてのパラメータは、プラグインの JSON 構成ファイル内の config_settings セクションのフィールドと一致している必要があります。これにより、ユーザーは Trust Lifecycle Manager でプラグインのインスタンス(コネクタ)を作成する際に、これらのパラメータに値を指定します。詳細については、「プラグイン構成を作成する」を参照してください。プラグイン構成を作成する

MyRefreshRequest.java

Lombok でアノテーションされたクラスは、Trust Lifecycle Manager からの refreshConfiguration 要求のモデルを定義します。

このクラスは、ユーザーが Trust Lifecycle Manager でプラグインのインスタンス(コネクタ)の[設定の更新]アクションを選択したときに、Trust Lifecycle Manager によって送信される内容をカスタマイズする場合に更新します。更新内容を、MyAutomationPlugin.java 内で @Override がアノテーションされた refreshConfiguration メソッドと整合させてください。

MyRefreshResponse.java

Lombok でアノテーションされたクラスは、Trust Lifecycle Manager からの refreshConfiguration 要求に対する応答モデルを定義します。

このクラスは、ユーザーがプラグインコネクタの[設定の更新]アクションを選択したときに、プラグインが Trust Lifecycle Manager に返す内容をカスタマイズする場合に更新します。更新内容を、MyAutomationPlugin.java 内で @Override がアノテーションされた refreshConfiguration メソッドと整合させてください。

プラグインの Zip ファイルをビルドする

重要

Before running the build script, make sure you've set up the GitHub credentials as configured in the project settings.xml file. For details, see プロジェクトファイル.

プラグインのプロジェクトファイルとソースファイルをカスタマイズした後、以下のとおり開発システムでプラグインの Zip ファイルをビルドできます。

  1. 最上位のプロジェクトディレクトリに移動します。

  2. sh build.sh と入力してビルドスクリプトを実行します。

  3. スクリプトの実行中に、ステータスメッセージがコンソールに出力されます。最後に、Zip ファイルの SHA-256 チェックサムが生成されて表示され、ビルドの成功が確認されます。

  4. plugin-dist サブディレクトリで、プラグインの最終的な Zip ファイルを見つけます。Zip ファイルには、Trust Lifecycle Manager で必要となるプラグインの JAR ファイルとメタデータの JSON ファイルが格納されています。

次の手順

Trust Lifecycle Manager でプラグインを追加するには、プラグインの Zip ファイルと、対応する JSON 構成ファイルの両方をアップロードする必要があります。

JSON 構成ファイルで必要な形式の詳細については、「プラグイン構成を作成する」を参照してください。プラグイン構成を作成する