API ベースの登録
Trust Lifecycle Manager REST API を使用して DigiCert® Trust Lifecycle Manager から Chef ノードに証明書を取得するには、以下の手順を実行します。
この統合に関係するのは以下の Chef コンポーネントです。
Chef ワークステーション: Trust Lifecycle Manager からその REST API を介して証明書を要求するカスタムの Chef クックブックを設定するローカル開発システム。
Chef サーバー: 本番環境の Chef ノードで使用するためにカスタム Chef クックブックをアップロードする中央ハブ。
Chef ノード: Chef サーバーでカスタムクックブックを使用して Trust Lifecycle Manager から証明書を要求するクライアントシステム。
開始する前に
Trust Lifecycle Manager へのアクセス権と、Manager または User and certificate manager のユーザーロールを持つ、アクティブな DigiCert ONE ユーザーまたはサービスユーザーの API トークンが必要です。詳細は「API アクセス」を参照してください。
Trust Lifecycle Manager では、登録方法として REST API、認証方法として 3rd Party app を指定された証明書プロファイルが必要です。プロファイル詳細ページから、統合を設定する際に使用する以下のパラメータを収集します。
プロファイル ID: プロファイル詳細ページの
GUIDフィールド、または DigiCert ONE URL から取得します。REST API エンドポイント(API KEY 認証): プロファイル詳細ページの上部にある
REST URLドロップダウンからコピーします。
統合ワークフロー
Chef 統合パッケージをダウンロードし、以下のサンプルファイルを取得します。
recipe/default.rb: Trust Lifecycle Manager からその REST API を介して証明書を要求するサンプルのレシピファイル。
attributes/default.rb: デジサートの API クレデンシャルを設定するサンプルの属性ファイル。
注記
ダウンロード可能なサンプルファイルは、[コネクタの追加]>[インフラの自動化]>[Chef]を選択して、[Trust Lifecycle Manager のIntegrations > Connectors]ページから入手することもできます。
サンプルファイルを使用して、Trust Lifecycle Manager からその REST API を介して証明書を要求するカスタムの Chef クックブックを作成します。
Chef ワークステーションでクックブックを設定するには:
以下のコマンドを実行し、クックブックのフレンドリ名を最後の引数として指定して、カスタムクックブックを作成します。
chef generate cookbook <custom_cookbook_name>
サンプルの recipe/default.rb ファイルをカスタムクックブックの recipes サブディレクトリにコピーし、そこでデフォルトの default.rb ファイルを置き換えます。
サンプルの attributes/default.rb ファイルをカスタムクックブックの attributes サブディレクトリにコピーし、そこでデフォルトの default.rb ファイルを置き換えます。
コピーした attributes/default.rb ファイルをカスタムクックブックで更新し、以下の各パラメータに値を指定します:
default['csr_path']: CSR が保存される、Chef ノード上のディレクトリパス。default['private_key_path']: 秘密鍵が保存される、Chef ノード上のディレクトリパス。default['output-certificate-path']: 発行された証明書が保存される、Chef ノード上のディレクトリパス。default['profile_id']: Trust Lifecycle Manager で証明書の発行元となる API 対応証明書プロファイルの GUID。default['rest_api_url']: Trust Lifecycle Manager で証明書プロファイルの詳細ページからコピーされた REST API エンドポイント(API KEY 認証)。default['common_name']: 発行する証明書のコモンネーム。
ファイルでは、パラメータ値を一重引用符で囲んでください。コモンネームのパラメータの場合は、次のようになります:
default['common_name'] = 'my-app.example.com'
以下のコマンドを使用して、カスタムクックブックをアクティブな Chef サーバーにアップロードします。最後の引数にはカスタムクックブック名を指定します。
knife cookbook upload <custom_cookbook_name>
Chef サーバーにカスタム Chef クックブックが配置されると、Trust Lifecycle Manager から Chef ノード用の証明書を要求できるようになります。
カスタムの API ベースの証明書要求レシピを含めて Chef サーバーからクックブックを実行するには、Chef ノードで以下のコマンドを使用します。
sudo chef-client
次の手順
証明書要求に成功すると、証明書ファイルはカスタムクックブックの attributes/default.rb ファイルで default['output-certificate-path'] パラメータに設定されたディレクトリで、Chef ノード上に追加されます。
証明書は Trust Lifecycle Manager の[インベントリ]ビューにも表示されるので、それを監視して通知を設定することができます。