Jooho.generate-self-signed-cert
Ansibleロール:自己署名証明書の生成
このロールは自己署名証明書を生成するのを手助けします。以下の組み合わせを作成します。
ケース 1:
- ルートCA
- 中間CA
- サーバー証明書(SANあり/SANなし)
ケース 2:
- ルートCA
- サーバー証明書(SANあり/SANなし)
要件
yum
ロール変数
| 名前 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|
| cert_base_dir | /root/cert_base | いいえ | デフォルトの証明書のベースディレクトリ |
| root_cert_bit | 4096 | いいえ | デフォルトのルート証明書のビットサイズ |
| intermediate_cert_bit | 4096 | いいえ | デフォルトの中間証明書のビットサイズ |
| server_cert_bit | 2048 | いいえ | デフォルトのサーバー証明書のビットサイズ |
| serial_number | 1000 | いいえ | 証明書共通情報 - シリアル番号 |
| countryName | CA | いいえ | 証明書共通情報 - 国名 |
| stateOrProvinceName | ON | いいえ | 証明書共通情報 - 州名 |
| localityName | MILTON | いいえ | 証明書共通情報 - 地域名 |
| organizationName | RED HAT | いいえ | 証明書共通情報 - 組織名 |
| organizationalUnitName | SCE | いいえ | 証明書共通情報 - 組織単位名 |
| emailAddress | test@test.com | いいえ | 証明書共通情報 - メールアドレス |
| root_commonName | Root CA | いいえ | ルート証明書情報 - ルートCN |
| intermediate_commonName | Intermediate CA | いいえ | 中間証明書情報 - 中間CN |
| cert_commonName | lb.example.com | いいえ | サーバー証明書情報 - サーバー証明書CN |
| use_intermediate_cert | yes | いいえ | いいえの場合は中間証明書を発行しません |
| use_san | yes | いいえ | はいの場合、CN名とともにSAN情報が追加されます |
| san_dns | いいえ | 複数のSAN DNSリストを追加します | |
| san_ip | いいえ | 複数のSAN IPリストを追加します | |
| overwrite_server_cert | yes | いいえ | CN名に基づいてサーバー証明書のディレクトリを削除します |
| clean_all | no | いいえ | すべての証明書を再生成します |
依存関係
なし
例プレイブック
- name: 例プレイブック
hosts: localhost
gather_facts: false
roles:
- { role: Jooho.generate-self-signed-cert }
例変数
ワイルドカード証明書:
cert_commonName: *.cloudapps.example.com
SAN DNSリスト:
san_dns:
- { index: 1, dns: lb.example.com}
- { index: 2, dns: master-cluster.example.com}
SAN IPリスト:
san_ip:
- { index: 1, ip: 192.168.200.205}
注意
プライベートキーと証明書のパーミッションは400/444であるべきですが、このAnsibleロールは777/777を使用しています。これらのファイルはどこかにコピーされるためです。 コピーした後、パーミッションを変更することをお勧めします。
便利なコマンド
openssl x509 -in {{cert_base_dir}/{{server_cert_commonName}}/{{server_cert_commonName}.cert.pem -text
openssl x509 -in /root/cert_base/lb.example.com/lb.example.com.cert.pem -text
参考文書
ライセンス
BSD/MIT
著者情報
このロールは2017年にJooho Leeによって作成されました。
