trombik.cfssl
trombik.cfssl
cfssl
のための ansible
ロールです。API サーバー(cfssl serve
)がサポートされています。
すべてのユーザーへ
多くのディストリビューションがパッケージの中で API サーバーをサポートしていないため、cfssl_db_*
のロール変数は変更される可能性があります。
cfssl
をサーバーとして実行するには、ディストリビューションのパッケージが起動スクリプトや他の変更を提供する必要があります。私の知る限り、Ubuntu のものは提供していません。したがって、Debian 系では API サーバーのサポートは実装されていません。
要件
なし
ロール変数
変数 | 説明 | デフォルト |
---|---|---|
cfssl_user |
cfssl のユーザー名 |
{{ __cfssl_user }} |
cfssl_group |
cfssl のグループ名 |
{{ __cfssl_group }} |
cfssl_package |
cfssl のパッケージ名 |
{{ __cfssl_package }} |
cfssl_extra_packages |
インストールする追加パッケージのリスト | [] |
cfssl_ca_root_dir |
ルート CA ディレクトリへのパス | {{ __cfssl_ca_root_dir }} |
cfssl_ca_secret_key_file |
ルート秘密鍵ファイルへのパス | {{ cfssl_ca_root_dir }}/ca-key.pem |
cfssl_ca_public_key_file |
ルート公開鍵ファイルへのパス | {{ cfssl_ca_root_dir }}/ca.pem |
cfssl_ca_csr_file |
ルート CA の CSR JSON ファイルへのパス | {{ cfssl_ca_root_dir }}/ca.csr |
cfssl_ca_csr_config |
cfssl_ca_csr_config_file の内容 |
{} |
cfssl_ca_config_file |
CA の設定ファイルの JSON へのパス | {{ cfssl_ca_root_dir }}/ca-config.json |
cfssl_ca_csr_config_file |
CA の CSR 設定ファイルの JSON へのパス | "{{ cfssl_ca_root_dir }}/ca-csr.json" |
cfssl_ca_config |
cfssl_ca_config_file の内容 |
{} |
cfssl_certs_dir |
署名された証明書を保持するディレクトリへのパス | {{ cfssl_ca_root_dir }}/certs |
cfssl_service |
cfssl のサービス名 |
cfssl |
cfssl_db_config |
YAML 形式のデータベース設定。詳細は certdb/README.md を参照してください。 | {} |
cfssl_db_type |
データベースの種類。サポートされている値は sqlite のみです。指定されると、ロールはデータベース用の特定のタスクを実行し、cfssl をサーバーとして起動します。 |
"" |
cfssl_db_dir |
データベースディレクトリへのパス | {{ __cfssl_db_dir }} |
cfssl_db_sqlite_bin |
sqlite コマンドのファイル名 |
sqlite3 |
cfssl_db_sqlite_database_file |
sqlite データベースファイルへのパス |
{{ cfssl_db_dir }}/certdb.db |
cfssl_db_sqlite_sql_file_dir |
SQL ファイルが保存されるディレクトリへのパス | {{ __cfssl_db_sqlite_sql_file_dir }} |
cfssl_db_migration_dir |
データベース移行ディレクトリへのパス | {{ cfssl_ca_root_dir }}/goose/{{ cfssl_db_type }} |
cfssl_db_migration_config |
データベース移行の設定 | {} |
cfssl_db_migration_environment |
データベース移行の環境 | development |
cfssl_flags |
起動スクリプトの追加オプション | "" |
cfssl_certs |
署名する証明書のリスト(以下を参照) | "" |
cfssl_certs
これは辞書のリストです。要素は CSR を表します。
キー | 説明 | 必須? |
---|---|---|
name |
cfssl_certs_dir からの相対ファイル名 |
はい |
SAN |
サブジェクトの代替名のリスト | いいえ |
profile |
署名時に使用するプロファイル名 | はい |
json |
YAML 形式のリクエスト JSON ファイルの内容 | はい |
owner |
秘密鍵ファイルの所有者の Unix ユーザー名(デフォルトは cfssl_user ) |
いいえ |
trombik.cfssl
の含め方
タスクやロールからこのロールを含めることができます。vars
を使用して、特定のロール変数を定義します。
- name: ロール trombik.cfssl を含める
include_role:
name: trombik.cfssl
vars:
cfssl_extra_packages:
- zsh
ただし、ロール変数を含む単一の変数を渡したい場合は、特別な橋渡しロール変数 cfssl_vars
にあなたの変数を渡す必要があります。
- name: ロール trombik.cfssl を含める
include_role:
name: trombik.cfssl
vars:
cfssl_vars: "{{ my_variable }}"
次の例は動作しません:
- name: ロール trombik.cfssl を含める
include_role:
name: trombik.cfssl
vars: "{{ my_variable }}"
中間 CA を作成するためにロールを複数回含める tests/serverspec/intermediate.yml を参照してください。
Debian
変数 | デフォルト |
---|---|
__cfssl_user |
cfssl |
__cfssl_group |
cfssl |
__cfssl_package |
golang-cfssl |
__cfssl_ca_root_dir |
/etc/cfssl |
__cfssl_db_dir |
/var/lib/cfssl |
__cfssl_db_sqlite_sql_file_dir |
"" |
FreeBSD
変数 | デフォルト |
---|---|
__cfssl_user |
cfssl |
__cfssl_group |
cfssl |
__cfssl_package |
security/cfssl |
__cfssl_ca_root_dir |
/usr/local/etc/cfssl |
__cfssl_db_dir |
/var/db/cfssl |
__cfssl_db_sqlite_sql_file_dir |
/usr/local/share/cfssl/certdb/sqlite/migrations |
OpenBSD
変数 | デフォルト |
---|---|
__cfssl_user |
_cfssl |
__cfssl_group |
_cfssl |
__cfssl_package |
cfssl |
__cfssl_ca_root_dir |
/etc/cfssl |
__cfssl_db_dir |
/var/db/cfssl |
__cfssl_db_sqlite_sql_file_dir |
/usr/local/share/cfssl/certdb/sqlite/migrations |
依存関係
なし
例プレイブック
この例では cfssl
を管理し、いくつかの証明書に署名します。
API サーバーの例は tests/serverspec/api.yml を参照してください。
ルート CA の下に複数の中間 CA を持つ例は tests/serverspec/intermediate.yml を参照してください。
---
- hosts: localhost
roles:
- role: ansible-role-cfssl
vars:
# このテストケースは
# https://docs.sensu.io/sensu-go/latest/guides/generate-certificates/ に記載されている手順に従います。
cfssl_certs:
- name: agent1.example.com.json
SAN: []
profile: agent
owner: nobody
json:
CN: agent1.example.com
hosts:
- ""
key:
algo: rsa
size: 2048
- name: backend-1.example.com.json
SAN:
- localhost
- 127.0.0.1
- 10.0.0.1
- backend-1
profile: backend
json:
CN: backend-1.example.com
hosts:
- ""
key:
algo: rsa
size: 2048
- name: backend-2.example.com.json
SAN:
- localhost
- 127.0.0.1
- 10.0.0.2
- backend-2
profile: backend
json:
CN: backend-2.example.com
hosts:
- ""
key:
algo: rsa
size: 2048
- name: backend-3.example.com.json
SAN:
- localhost
- 127.0.0.1
- 10.0.0.3
- backend-3
profile: backend
json:
CN: backend-3.example.com
hosts:
- ""
key:
algo: rsa
size: 2048
cfssl_ca_config:
signing:
default:
expiry: 17520h
usages:
- signing
- key encipherment
- client auth
profiles:
backend:
expiry: 4320h
usages:
- signing
- key encipherment
- server auth
agent:
expiry: 4320h
usages:
- signing
- key encipherment
- client auth
cfssl_ca_csr_config:
CN: Sensu Test CA
key:
algo: rsa
size: 2048
ライセンス
Copyright (c) 2020 Tomoyuki Sakurai <y@trombik.org>
このソフトウェアを、料金の有無にかかわらず、使用、複製、変更、配布する許可がここに与えられます。
上記の著作権表示とこの許可表示はすべてのコピーに表示されなければなりません。
このソフトウェアは「現状のまま」提供され、著作者はこのソフトウェアに関して、すべての保証を放棄します。
著作者は商業性や適合性を含むすべての暗黙の保証に対して責任を負いません。
著作者は、このソフトウェアの使用または性能に起因する特別、直接、間接、または結果的な損害やデータ、利益の損失に対して責任を負いません。
著者情報
Tomoyuki Sakurai y@trombik.org
この README は qansible によって作成されました。
インストール
ansible-galaxy install trombik.cfssl
ライセンス
isc
ダウンロード
1.1k
所有者
PGP finger print: 03EB 3D97 5E04 9B0C AB21 93A2 D693 42A9 EFBC 3577
Makerspace and Coliving in Siem Reap, Cambodia: http://info.mkrsgh.org/