L-P.simp_le
ansible-role-simp_le
Installieren Sie simp_le, generieren Sie Zertifikate und erneuern Sie diese automatisch auf Debian/Ubuntu-Servern.
Die Erneuerung wird täglich über einen Cron-Job versucht, der vom Ansible-Remote-Benutzer ausgeführt wird.
Siehe die Rolle auf Ansible Galaxy: L-P.simp_le
Hinweis: Ich habe angefangen, acmetool zu verwenden und empfehle, dass Sie das Gleiche für jeden neuen Server machen, der Ubuntu ≥ 16.04 verwendet.
Benötigte Variablen
Eine Liste von virtuellen Hosts, für die wir Zertifikate generieren werden:
simp_le_vhosts:
- domains: ["www.example.com", "example.com"]
root: "/path/to/challenges" # über HTTP zugänglich
output: "/path/to/output/dir" # wo die Zertifikate gespeichert werden
Eine E-Mail-Adresse, die LetsEncrypt verwenden wird, um Sie zu identifizieren und Erneuerungsbenachrichtigungen zu senden:
simp_le_email: "[email protected]"
Es gibt drei optionale Schlüssel, die Sie für Hosts festlegen können:
user
undgroup
, um festzulegen, wem die Schlüssel, Herausforderungen und deren übergeordnetes Verzeichnis gehören. Der Eigentümer ist standardmäßigwww-data:www-data
.extra_args
, um zusätzliche Argumente an simp_le zu übergeben. Dies kann verwendet werden, um den LetsEncrypt-Testserver zu nutzen oder simp_le anzuweisen, das Schlüsselpaar bei der Erneuerung des Zertifikats wiederzuverwenden. Dies ist nützlich, wenn Sie TLSA-Datensätze verwenden; dann können Sie den Selektor Typ 1 (SubjectPublicKeyInfo) verwenden und Ihr TLSA-Datensatz muss bei der Erneuerung des Zertifikats nicht geändert werden.update_action
, ein Befehl, der bei einer Zertifikatserneuerung ausgeführt werden soll, z.B.systemctl restart apache2
Beispiel:
simp_le_vhosts:
- domains: ["smtp.example.com", "mail.example.com"]
root: "/path/to/challenges"
output: "/path/to/output/dir"
user: "Debian-exim"
group: "Debian-exim"
extra_args: "--reuse_key --server https://acme-staging.api.letsencrypt.org/directory"
update_action: "/bin/systemctl restart exim4"
Siehe defaults/main.yml
für weitere Konfiguration.
Serverkonfiguration
Ihr Server muss die Challenge-Dateien über HTTP bereitstellen. Hier ist ein Beispiel für eine nginx-Konfiguration, die jede HTTP-Anfrage auf HTTPS umleitet, außer für die Herausforderungen:
location /.well-known/acme-challenge/ {
alias /var/www/challenges/.well-known/acme-challenge/;
try_files $uri @forward_https;
}
location @forward_https {
return 301 https://example.com$request_uri;
}
location / {
return 301 https://example.com$request_uri;
}
Beispiel-Playbook
- hosts: all
roles:
- {role: "L-P.simp_le", become: no}
Während die meisten Operationen ohne sudo
ausgeführt werden, wird es dennoch verwendet, um die verschiedenen Verzeichnisse mit den richtigen Berechtigungen und Besitzern zu erstellen.
simp_le installation and certificate generation for Ubuntu/Debian.
ansible-galaxy install L-P.simp_le