7.2. certificate RHEL システムロールを使用した新しい自己署名証明書の要求
テスト環境に TLS 証明書が必要な場合は、自己署名証明書を使用できます。certificate
RHEL システムロールを使用すると、秘密鍵を作成するプロセスと、certmonger
サービスで自己署名証明書を作成するプロセスを自動化できます。また、certmonger
は、デフォルトで証明書の有効期限が切れる前に更新を行います。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Create certificates hosts: managed-node-01.example.com tasks: - name: Create a self-signed certificate ansible.builtin.include_role: name: rhel-system-roles.certificate vars: certificate_requests: - name: web-server ca: self-sign dns: test.example.com
サンプル Playbook で指定されている設定は次のとおりです。
name: <path_or_file_name>
生成される秘密鍵と証明書ファイルの名前またはパスを定義します。
-
変数を
web-server
に設定すると、ロールによって秘密鍵が/etc/pki/tls/private/web-server.key
に保存され、証明書が/etc/pki/tls/certs/web-server.crt
ファイルに保存されます。 変数を
/tmp/web-server
などのパスに設定すると、ロールによって秘密鍵が/tmp/web-server.key
に保存され、証明書が/tmp/web-server.crt
ファイルに保存されます。使用するディレクトリーに
cert_t
SELinux コンテキストが設定されている必要があることに注意してください。SELinux コンテキストは、selinux
RHEL システムロールを使用して管理できます。
-
変数を
ca: self-sign
- ロールで自己署名証明書を作成することを指定します。
dns: <hostname_or_list_of_hostnames>
-
発行された証明書のサブジェクト代替名 (SAN) フィールドに含まれるホスト名を設定します。ワイルドカード (
*
) を使用することも、YAML リスト形式で複数の名前を指定することもできます。
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.certificate/README.md
ファイルを参照してください。Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
検証
certmonger
サービスが管理する証明書をリスト表示します。# ansible managed-node-01.example.com -m command -a 'getcert list' ... Number of certificates and requests being tracked: 1. Request ID '20240918133610': status: MONITORING stuck: no key pair storage: type=FILE,location='/etc/pki/tls/private/web-server.key' certificate: type=FILE,location='/etc/pki/tls/certs/web-server.crt' CA: local issuer: CN=c32b16d7-5b1a4c5a-a953a711-c3ca58fb,CN=Local Signing Authority subject: CN=test.example.com issued: 2024-09-18 15:36:10 CEST expires: 2025-09-18 15:36:09 CEST dns: test.example.com key usage: digitalSignature,keyEncipherment eku: id-kp-serverAuth,id-kp-clientAuth pre-save command: post-save command: track: yes auto-renew: yes
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.certificate/README.md
ファイル -
/usr/share/doc/rhel-system-roles/certificate/
ディレクトリー