Ansible, sertifika anahtarı üretme, CSR hazırlama ve dosyaları birçok sunucuya dağıtma işlerini tekrarlanabilir hale getirir. Bu işler için community.crypto koleksiyonu kullanılır.
Ön Koşullar
- Kontrol makinesinde Ansible ve koleksiyon:
ansible-galaxy collection install community.crypto - Hedef sunucularda Python ve cryptography kütüphanesi.
- Gizli bilgiler için Ansible Vault.
Anahtar ve CSR Üretimi
- name: Ozel anahtar
community.crypto.openssl_privatekey:
path: /etc/ssl/private/ornek.key
size: 2048
mode: '0600'
- name: CSR
community.crypto.openssl_csr:
path: /etc/ssl/ornek.csr
privatekey_path: /etc/ssl/private/ornek.key
common_name: www.ornek.com
subject_alt_name:
- DNS:www.ornek.com
- DNS:ornek.com
Satın Alınan Sertifikanın Dağıtımı
Sertifika onaylanınca dosyayı Vault ile şifreli değişkende veya güvenli bir depoda tutup hedef sunucuya kopyalayın, ardından servisi yeniden yükleyin:
- name: Sertifikayi kopyala
ansible.builtin.copy:
src: files/ornek-fullchain.pem
dest: /etc/ssl/ornek-fullchain.pem
mode: '0644'
notify: reload nginx
handlers:
- name: reload nginx
ansible.builtin.service:
name: nginx
state: reloaded
İpuçları
- Özel anahtarı merkezde üretip dağıtmak yerine her sunucuda üretmek, anahtarın dolaşımını azaltır.
- Son kullanma tarihini
community.crypto.x509_certificate_infoile okuyup uyarı üretebilirsiniz. - Playbook'u önce
--checkile deneyin.
CSR'ı elle üretmek isterseniz CSR oluşturucuyu, sertifika seçimi için SSL sertifikaları sayfasını kullanabilirsiniz.