Ansible
以下の手順に従い、Ansible プレイブックを通じて DigiCert® Trust Lifecycle Manager から証明書を取得し、ACMEv2 プロトコルで要求を生成して、発行された証明書をダウンロードします。
開始する前に
Trust Lifecycle Manager では、登録方法として 3rd-party ACME client を指定した証明書プロファイルが必要です。このプロファイルは一般的な証明書プロパティを定義し、必要な ACME URL と外部アカウントバインディング(EAB)クレデンシャルを次のように提供します。
ACME ディレクトリの URL: Trust Lifecycle Manager から証明書を要求する ACME サーバーの URL。
鍵識別子(KID): Trust Lifecycle Manager アカウントで証明書プロファイルを識別します。
HMAC キー: 証明書要求中にアカウントの鍵を暗号化し、認証する際に使用されます。
Ansible の側で、community.crypto コレクションがあることを確認します。統合に必要な以下の 2 つのモジュールを提供するコレクションです。
acme_accountモジュール。外部アカウントバインディングを使用してアカウントを作成します。acme_certificateモジュール。証明書を発行します。警告
以前のバージョンの
acme_certificateモジュールに存在していた既知の問題を回避するには、最新バージョンの community.crypto コレクションを使用してください。以前、ACME を使用して Ansible 経由で発行された証明書の一部でコモンネームが欠落したり、SAN の順序が要求と異なったりするという問題がありました。
統合ワークフロー
Ansible 統合パッケージをダウンロードし、以下のファイルを取得します。
digicert_acme_cert_main.yml: Trust Lifecycle Manager から証明書を取得する Ansible プレイブックスクリプトのサンプル。カスタム値に更新したうえで証明書を要求してください。
get-cert.yml: ACMEv2 を介してデジサートに証明書要求を送信するヘルパースクリプト。Ansible プレイブックと同じディレクトリに配置したままにしてください。
ReadMe.txt: 統合の設定を支援する手順と技術的な詳細情報。
注記
ダウンロード可能なサンプルファイルは、[コネクタの追加]>[インフラの自動化]>[Ansible]を選択して、[Trust Lifecycle Manager のIntegrations > Connectors]ページから入手することもできます。
Trust Lifecycle Manager から証明書を要求するには、サンプルの Ansible プレイブックファイル digicert_acme_cert_main.yml で vars セクションを更新し、以下の各パラメータに値を指定してください。
acme_dir_url: Trust Lifecycle Manager で対象となる証明書プロファイルの ACME ディレクトリの URL。eab_kid: 証明書プロファイルの ACME EAB 鍵識別子(KID)。eab_key: 証明書プロファイルの ACME EAB HMAC キー。cert_cn: 発行する証明書のコモンネーム。contact_email: 管理担当者のメールアドレス。
オプションとして、証明書要求をさらにカスタマイズする場合は、プレイブックファイルで以下のパラメータを更新します。
data_dir: Ansible プレイブックを実行するインストールディレクトリの中で、鍵と証明書が保存されるサブディレクトリの場所。デフォルトでは、生成される資産は data サブディレクトリに保存されます。subject_alt_name: この証明書で保護するサブジェクト別名(SAN)を指定します。デフォルトでは、発行された証明書の SAN エクステンションには、www プレフィックス付きで、またはプレフィックスなしで、証明書のコモンネームが含まれます。
カスタマイズした Ansible プレイブックファイルとヘルパースクリプト get-cert.yml を、証明書をインストールするディレクトリに配置します。
以下のように Ansible プレイブックを実行します。
ルートユーザーとして:
ansible-playbook digicert_acme_cert_main.yml非ルートユーザーとして:
ansible-playbook --become-user <BECOME_USER> digicert_acme_cert_main.yml
次の手順
Ansible プレイブックが正常に実行されると、コモンネームで識別される新しい証明書の一連のファイルが data サブディレクトリに追加されます。
<common_name>.csr
<common_name>.key
<common_name>.pem
<common_name>-chain.pem
<common_name>-fullchain.pem
証明書は Trust Lifecycle Manager の[インベントリ]ビューにも表示されるので、それを監視して通知を設定することができます。