LIP-Computing.ssl-certs
ansible-role-ssl-certs
生成和/或部署 SSL 证书
在 Ansible Galaxy 上可用:LIP-Computing.ssl-certs
示例
生成自签名 SSL 证书的示例
- hosts: all
roles:
- LIP-Computing.ssl-certs
这将在以下位置创建证书和私钥:
/etc/ssl/myserver.mydomain.com.key
/etc/ssl/myserver.mydomain.com.pem
部署 SSL 证书的示例
以下是两个剧本示例:
- hosts: all
roles:
- role: LIP-Computing.ssl-certs
ssl_certs_common_name: "example.com"
- hosts: all
roles:
- role: LIP-Computing.ssl-certs
ssl_certs_common_name: "myhost.mydomain"
ssl_certs_country: "PT"
ssl_certs_locality: "Lisbon"
ssl_certs_organization: "LIP"
ssl_certs_state: "Lisbon"
ssl_certs_path_owner: "root"
ssl_certs_path_group: "root"
ssl_certs_generate_dh_param: true
证书必须放置在 files/ssl/example.com.key
和 files/ssl/example.com.pem
文件中。如果它们不存在,将会使用提供的通用名称在 /etc/ssl/example.com.key
和 /etc/ssl/example.com.pem
生成一个 自签名 证书。
使用本地密钥/pem 文件部署 SSL 证书的示例
- hosts: all
roles:
- role: LIP-Computing.ssl-certs
ssl_certs_local_privkey_path: '/path/to/example.com.key'
ssl_certs_local_cert_path: '/path/to/example.com.pem'
使用变量存储的 SSL 证书部署的示例
SSL 证书和密钥只是可以作为变量存储的文本,这在使用 Ansible vault 时非常有用。
示例变量数据,请注意文本块是如何缩进的。这对于通过模板模块正确插入文本是必要的。
ssl_certs_local_privkey_data: |
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAu2uhv2cjoN4F3arUZ5cDrwuxf3koCwrKSK75as0WZoxYrpyw
Lyx9ldyD4nGabVep0R/uAgQ/HqEf2jC7WIvGcEq8bHB9PyEEWzT8IjKQX0YTc//4
gkHBkpyU0fVrj5nkc30EIbcbH4RHRDwye4VhP/iCPchDG7OqvCyOdm8=
-----END RSA PRIVATE KEY-----
ssl_certs_local_cert_data: |
-----BEGIN CERTIFICATE-----
MIIDmzCCAoOgAwIBAgIJAKWMlgLwrBzXMA0GCSqGSIb3DQEBCwUAMGQxCzAJBgNV
QAL3naEfBSZBl0tBohuxn8Xd3yLPuKGUOk3pSL1IJy0Ca6p+QwjkaZUd9X3gf1V2
SEfYSaGPvfIlSuHIshno
-----END CERTIFICATE-----
然后简单地像第一个示例一样包含该角色。
将此角色与我的 Nginx 角色一起使用的示例:jdauphant.nginx
- hosts: all
roles:
- LIP-Computing.ssl-certs
ssl_certs_generate_dh_param: true
- role: jdauphant.nginx
nginx_configs:
ssl:
- ssl_certificate_key {{ssl_certs_privkey_path}}
- ssl_certificate {{ssl_certs_cert_path}}
- ssl_dhparam {{ssl_certs_dhparam_path}}
nginx_sites:
default:
- listen 443 ssl
- server_name _
- root "/usr/share/nginx/html"
- index index.html