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.nd。 | {} |
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 |
请求 JSON 文件的内容(YAML 格式) | 是 |
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 }}"
请参见 tests/serverspec/intermediate.yml,其中多次包含该角色以创建中间 CA。
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
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 测试 CA
key:
algo: rsa
size: 2048
许可证
版权所有 (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/