implement snakoil certificate-creation as faster alternative
This commit is contained in:
parent
aa5d0ba109
commit
84ecad4298
|
|
@ -6,7 +6,7 @@ testing: false
|
||||||
|
|
||||||
# default config => is overwritten by provided config
|
# default config => is overwritten by provided config
|
||||||
defaults_certs:
|
defaults_certs:
|
||||||
mode: 'selfsigned' # selfsigned, ca, pki, le_certbot
|
mode: 'selfsigned' # selfsigned, snakeoil/quick, ca, pki, le_certbot
|
||||||
path: '/etc/ssl/ansible'
|
path: '/etc/ssl/ansible'
|
||||||
|
|
||||||
cert:
|
cert:
|
||||||
|
|
|
||||||
|
|
@ -40,3 +40,7 @@
|
||||||
when:
|
when:
|
||||||
- CERT_CONFIG.mode == 'le_certbot'
|
- CERT_CONFIG.mode == 'le_certbot'
|
||||||
- "ansible_distribution|lower in ['debian', 'ubuntu']"
|
- "ansible_distribution|lower in ['debian', 'ubuntu']"
|
||||||
|
|
||||||
|
- name: Certificates | Snakeoil
|
||||||
|
ansible.builtin.include_tasks: snakeoil.yml
|
||||||
|
when: "CERT_CONFIG.mode in ['snakeoil', 'quick']"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Certificates | Snakeoil | Creating cert directory
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ CERT_CONFIG.path }}"
|
||||||
|
state: directory
|
||||||
|
mode: 0750
|
||||||
|
owner: "{{ CERT_CONFIG.owner_key }}"
|
||||||
|
group: "{{ CERT_CONFIG.group_key }}"
|
||||||
|
|
||||||
|
- name: Certificates | Snakeoil | Setting SAN
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
cert_san: "{% for domain in CERT_CONFIG.cert.domains %}
|
||||||
|
{% if domain | valid_hostname %}DNS:{{ domain }}{% if not loop.last %},{% endif %}{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% for ip in CERT_CONFIG.cert.ips %}
|
||||||
|
{% if ip | valid_ip %},IP:{{ ip }}{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% if CERT_CONFIG.cert.san_other %}
|
||||||
|
{% if CERT_CONFIG.cert.domains | length > 0 or CERT_CONFIG.cert.ips | length > 0 %},{% endif %}
|
||||||
|
{{ CERT_CONFIG.cert.san_other }}
|
||||||
|
{% endif %}"
|
||||||
|
when: >
|
||||||
|
CERT_CONFIG.cert.domains | length > 0 or
|
||||||
|
CERT_CONFIG.cert.ips | length > 0 or
|
||||||
|
CERT_CONFIG.cert.san_other
|
||||||
|
|
||||||
|
- name: Certfificates | Snakeoil | Build command
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
cert_cmd: "openssl req -x509 -newkey rsa:{{ CERT_CONFIG.cert.key_size }} -sha256 -nodes \
|
||||||
|
{% if CERT_CONFIG.cert.cn | default(none, true) is not none %}
|
||||||
|
-subj \"/CN={{ CERT_CONFIG.cert.cn }}\" \
|
||||||
|
{% endif %}
|
||||||
|
{% if cert_san | default(none, true) is not none %}
|
||||||
|
-addext \"subjectAltName = {{ cert_san | replace(' ', '') }}\" \
|
||||||
|
{% endif %}
|
||||||
|
-keyout {{ cert_key }} -out {{ cert_pub }} \
|
||||||
|
-days {{ CERT_CONFIG.cert.valid_days }}"
|
||||||
|
cert_pub: "{{ cert_pub }}"
|
||||||
|
vars:
|
||||||
|
cert_pub: "{{ CERT_CONFIG.path }}/{{ name | default(CERT_CONFIG.cert.name) }}.{{ CERT_CONFIG.extension_cert }}"
|
||||||
|
cert_key: "{{ CERT_CONFIG.path }}/{{ name | default(CERT_CONFIG.cert.name) }}.{{ CERT_CONFIG.extension_key }}"
|
||||||
|
|
||||||
|
- name: Certificates | Snakeoil | Certificate command
|
||||||
|
ansible.builtin.debug:
|
||||||
|
var: cert_cmd
|
||||||
|
|
||||||
|
- name: Certificates | Snakeoil | Create Certificate
|
||||||
|
ansible.builtin.command: "{{ cert_cmd }}"
|
||||||
|
args:
|
||||||
|
creates: "{{ cert_pub }}"
|
||||||
Loading…
Reference in New Issue