開発者ドキュメント

Puppet4証明書を管理する方法

人形のチートシート

Puppetは、システム管理者がサーバーインフラストラクチャのプロビジョニング、構成、および管理を自動化するのに役立つ構成管理ツールです。 通常、マスターサーバーが複数のエージェントノードの構成を管理するマスター/エージェントモードで実行されます。 マスターとエージェント間の通信は、クライアントが検証したHTTPSで許可および保護されます。これには、有効な識別SSL証明書が必要です。 Puppetマスターは、これらの証明書を管理するための認証局として機能します。

このチートシートスタイルガイドは、を使用するためのクイックリファレンスを提供します puppet cert それらの証明書を管理するコマンド。

このガイドの使用方法:

注: puppet あなたのパスにない場合は、フルパスを提供する必要があります puppet 以下のコマンドで。

証明書リクエストの一覧表示

Puppetエージェントサーバーがオンラインになると、すべてが適切に構成されている場合、サーバーはPuppetマスターに証明書署名要求を提示します。 これらのリクエストは、 puppet cert list 指図。

署名済みと未署名のすべてのリクエストを一覧表示します

署名付きおよび署名なしのすべての証明書要求を表示するには、 --all 次のようにフラグを立てます。

  1. sudo puppet cert list --all

署名されたリクエストの前にはプラス(+)および署名されていないリクエストはそうではありません。 以下の出力では、 host2.example.com 署名されていませんが、 host1puppet 持ってる:

Output:
+ "host1.example.com" (SHA256) 51:D8:7A:EB:40:66:74:FD:0A:03:5D:35:AA:4D:B3:FA:35:99:C2:A8:C9:01:83:34:F6:16:60:BB:46:1F:33:3F "host2.example.com" (SHA256) 3C:A9:96:3A:8D:24:5F:25:DB:FF:67:B5:22:B1:46:D9:89:F1:75:EC:BA:F2:D6:87:70:0C:59:97:11:11:01:E3 + "puppet.example.com" (SHA256) 12:32:47:18:D1:12:85:A6:EA:D4:51:9C:24:96:E2:8A:51:41:8D:EB:E8:7C:EB:47:94:B0:8B:16:16:51:6A:D1 (alt names: "DNS:puppet", "DNS:puppet.localdomain", "DNS:puppet.example.com")

署名されていないリクエストを一覧表示する

Puppet Serverがエージェントノードと通信して制御できるようになる前に、その特定のエージェントノードの証明書に署名する必要があります。 署名されていないリクエストを確認するには、 puppet cert list Puppetサーバーからのコマンド:

  1. sudo puppet cert list

これにより、署名されていないリクエストのみが一覧表示されます。 出力は次のようになります。

Output:
"host2.example.com" (SHA256) 9D:49:DE:46:1C:0F:40:19:9B:55:FC:97:69:E9:2B:C4:93:D8:A6:3C:B8:AB:CB:DD:E6:F5:A0:9C:37:C8:66:A0

プラス記号がない(+)は、これらの証明書がまだ署名されていないことを示します。 署名されていない要求がない場合は、出力なしでコマンドプロンプトに戻ります。

証明書リクエストへの署名

特定のリクエストに署名する

単一の証明書リクエストに署名するには、 puppet cert sign コマンド。証明書要求に表示される1つ以上のホスト名を使用します。

  1. puppet cert sign host2.example.com

次の例のような出力は、証明書要求が署名されていることを示しています。

Output:
Notice: Signed certificate request for host1.example.com Notice: Removing file Puppet::SSL::CertificateRequest host2.example.com at '/etc/puppetlabs/puppet/ssl/ca/requests/host1.example.com.pem'

すべてのリクエストに署名する

を追加することにより、すべてのリクエストに署名できます --all 国旗:

  1. sudo puppet cert sign --all

証明書の取り消し

最終的には、Puppetからホストを削除するか、ホストを再構築してから再度追加することをお勧めします。 この場合、Puppetマスターからホストの証明書を取り消す必要があります。 これを行うには、 clean アクション:

注:バックアップを作成します /etc/puppetlabs/puppet/ssl/ 証明書を取り消す前のディレクトリ:

  1. sudo cp -R /etc/puppetlabs/puppet/ssl/ /root/

特定の証明書を取り消す

次の方法で1つ以上の特定の証明書を取り消すことができます puppet cert clean 証明書に表示されている1つ以上のホスト名を指定する。

  1. sudo puppet cert clean host1.example.com

証明書を失効させた後、失効を有効にするには、Puppetマスターを再起動する必要があります。

  1. sudo service puppetserver reload

次回 puppet agent エージェントノードで実行されると、新しい証明書署名要求がPuppetマスターに送信されます。 puppet cert sign. 次の方法でリクエストをすぐにトリガーできます。

  1. sudo puppet agent --test

複数の証明書を取り消す

Puppetでは、証明書を一括で削除することはできません。 --all フラグを立てますが、スペースで区切ってホスト名を指定することにより、複数の証明書を一度に取り消すことができます。

  1. sudo puppet cert clean host1.example.com host2.example.com . . .

証明書を失効させた後、失効を有効にするには、Puppetマスターを再起動する必要があります。

  1. sudo service puppetserver reload

結論

このガイドでは、Puppetバージョン4.xでPuppet証明書を管理するための一般的なコマンドのいくつかについて説明します。 で使用できる他のアクションとフラグがあります puppet cert. 包括的なリストについては、puppetcertのマニュアルページを参照してください。

モバイルバージョンを終了