primer commit

This commit is contained in:
Rénich Bon Ćirić 2025-08-06 05:45:11 -06:00
commit 864b3e4008
Signed by: renich
GPG key ID: BDA314B08CB17657
105 changed files with 3185 additions and 0 deletions

View file

@ -0,0 +1,75 @@
---
- name: "Generate private key for {{ cert.name }}"
community.crypto.openssl_privatekey:
path: "{{ koji_pki_dir }}/{{ cert.name }}.key"
size: "{{ koji_cert_key_size }}"
mode: "{{ koji_pki_private_key_mode }}"
- name: "Generate CSR for {{ cert.name }}"
community.crypto.openssl_csr:
path: "{{ koji_pki_dir }}/{{ cert.name }}.csr"
privatekey_path: "{{ koji_pki_dir }}/{{ cert.name }}.key"
common_name: "{{ cert.cn }}"
country_name: "{{ koji_cert_country }}"
state_or_province_name: "{{ koji_cert_state }}"
locality_name: "{{ koji_cert_locality }}"
organization_name: "{{ koji_cert_organization }}"
- name: Create temporary OpenSSL config for signing
ansible.builtin.copy:
dest: "{{ koji_pki_dir }}/openssl-{{ cert.name }}.cnf"
content: |
[v3_ca]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
{% if cert.is_server is defined and cert.is_server %}
extendedKeyUsage = serverAuth, clientAuth
{% else %}
extendedKeyUsage = clientAuth
{% endif %}
subjectAltName = @alt_names
[alt_names]
DNS.1 = {{ cert.cn }}
{% for san in cert.sans|default([]) %}
DNS.{{ loop.index + 1 }} = {{ san }}
{% endfor %}
- name: "Sign certificate for {{ cert.name }} with our CA"
ansible.builtin.shell:
cmd: >
openssl x509 -req
-in {{ koji_pki_dir }}/{{ cert.name }}.csr
-CA {{ koji_pki_dir }}/{{ koji_ca_name }}_cert.crt
-CAkey {{ koji_pki_dir }}/{{ koji_ca_name }}_cert.key
-CAserial {{ koji_pki_dir }}/ca.srl
-CAcreateserial
-out {{ koji_pki_dir }}/{{ cert.name }}.crt
-days {{ koji_cert_expiration_days }}
-sha256
-extfile {{ koji_pki_dir }}/openssl-{{ cert.name }}.cnf
-extensions v3_ca
creates: "{{ koji_pki_dir }}/{{ cert.name }}.crt"
- name: "Remove temporary openssl.cnf for {{ cert.name }}"
ansible.builtin.file:
path: "{{ koji_pki_dir }}/openssl-{{ cert.name }}.cnf"
state: absent
- name: "Generate PKCS12 bundle for user {{ cert.name }}"
community.crypto.openssl_pkcs12:
action: export
path: "{{ koji_pki_dir }}/{{ cert.name }}_browser_cert.p12"
privatekey_path: "{{ koji_pki_dir }}/{{ cert.name }}.key"
certificate_path: "{{ koji_pki_dir }}/{{ cert.name }}.crt"
ca_certificates:
- "{{ koji_pki_dir }}/{{ koji_ca_name }}_cert.crt"
friendly_name: "{{ cert.name }}"
mode: "{{ koji_pki_file_mode }}"
when: cert.is_user
- name: "Create PEM file for {{ cert.name }}"
ansible.builtin.shell:
cmd: "cat {{ koji_pki_dir }}/{{ cert.name }}.crt {{ koji_pki_dir }}/{{ cert.name }}.key > {{ koji_pki_dir }}/{{ cert.name }}.pem"
creates: "{{ koji_pki_dir }}/{{ cert.name }}.pem"