thermistor.acme_sh
acme_sh
Skonfiguruj acme.sh w trybie dns api za pomocą ansible, aby generować certy od letsencrypt.org.
Wymagania
Wiele domyślnych ustawień zakłada użycie nginx.
Zmienne
Oto kilka domyślnych ustawień, które kontrolują działanie:
acme_sh_autoupgrade: True
acme_sh_server: letsencrypt
acme_sh_notify: False
acme_sh_logging: False
acme_sh_keylength: 4096
acme_sh_dns_sleep: 120
acme_sh_certs_public_dir: /etc/nginx/certs
acme_sh_certs_private_dir: /etc/nginx/private
acme_sh_reload_cmd: /bin/systemctl reload nginx
Przykładowy Playbook
Oto przykład użycia AWS Route53 API. Możesz go jednak zmodyfikować dla dowolnego dostawcy dns api.
Użycie:
- hosts: serwery
roles:
- role: thermistor.acme_sh
acme_sh_subject_names:
- example.com
- www.example.com
acme_sh_dns_provider: dns_aws
acme_sh_env:
AWS_ACCESS_KEY_ID: "{{ twoj_zeszyt_aws_access_key_id }}"
AWS_SECRET_ACCESS_KEY: "{{ twoj_zeszyt_aws_secret_access_key }}"
Oto ten sam przykład, ale z dodanym logowaniem:
- hosts: serwery
roles:
- role: thermistor.acme_sh
acme_sh_logging: True
acme_sh_subject_names:
- example.com
- www.example.com
acme_sh_dns_provider: dns_aws
acme_sh_env:
AWS_ACCESS_KEY_ID: "{{ twoj_zeszyt_aws_access_key_id }}"
AWS_SECRET_ACCESS_KEY: "{{ twoj_zeszyt_aws_secret_access_key }}"
I z powiadomieniami mailgun:
- hosts: serwery
roles:
- role: thermistor.acme_sh
acme_sh_notify: True
acme_sh_notify_hooks:
- mailgun
acme_sh_subject_names:
- example.com
- www.example.com
acme_sh_dns_provider: dns_aws
acme_sh_env:
AWS_ACCESS_KEY_ID: "{{ twoj_zeszyt_aws_access_key_id }}"
AWS_SECRET_ACCESS_KEY: "{{ twoj_zeszyt_aws_secret_access_key }}"
MAILGUN_API_KEY: "{{ twoj_zeszyt_mailgun_api_key }}"
MAILGUN_API_DOMAIN: "{{ twoj_zeszyt_mailgun_domain }}"
MAILGUN_FROM: "{{ twoj_zeszyt_mailgun_from }}"
MAILGUN_TO: "{{ twoj_zeszyt_mailgun_to }}"
Co się dzieje w tle
Jeśli generujesz certyfikat dla example.com, w trakcie instalacji ta rola skopiuje plik /var/lib/acme/.acme.sh/example.com/fullchain.cer
i zainstaluje go jako /etc/nginx/certs/example.com.cer
. Zauważ, że instaluje pełny certyfikat i zmienia jego nazwę, aby móc zainstalować wiele pełnych certyfikatów dla różnych domen, jeśli zajdzie taka potrzeba.
Rozwiązywanie problemów
Jeśli wystąpią problemy z konfiguracją certyfikatów, czasami można napotkać problem, gdzie certyfikaty nie są ponownie instalowane. Możesz wymusić ponowną instalację certyfikatów za pomocą:
ansible-playbook -i inventory playbook.yml -e "acme_sh_force_install=True" --tags acme_sh_cert_install
Licencja
MIT
Alternatywy
Wiele wzięliśmy z tych alternatyw:
- nickjj.acme_sh - obsługa wielu certyfikatów
- verosk.acme-sh - tylko instalacja
ansible-galaxy install thermistor.acme_sh