Für die höchstmögliche Kompatibilität mit verschiedenen Betriebssystemen und Programmen, erstellen und verifizieren wir Zertifikate via ACME mit der HTTP-01 Challenge.
Für Services, die direkt ohne weiteren Reverse-Proxy im Netz hängen, ist dies natürlich trivial. Hier muss nur der entsprechende DNS Record korrekt gesetzt werden. Entweder im Authoritative DNS für Domains unter ccchh.net
oder im DNS auf dem Chaosknoten für Domains unter hamburg.ccc.de
Für Services, die hinter einem Reverse-Proxy hängen, ist der Prozess ein wenig involvierter.
Deswegen hier ein How-To, wie man für Services in Z9 ein Zertifikat unter der ccchh.net
Domain, mit Hilfe der vorhandenen Ansible Rollen, erstellt:
*.ccchh.net
, welcher auf den Public-Reverse-Proxy bei uns im Club zeigt. Du musst also kein DNS Record für die Domain setzen, für die du ein Zertifikat haben möchtest.acme_challenge.conf
vom Public-Reverse-Proxy (playbooks/files/configs/public-reverse-proxy/acme_challenge.conf
) ein Mapping von der Domain des Zertifikats auf die IP des Hosts, auf welchem das Zertifikat generiert werden soll.31820
, da Certbot später auf diesen listened.certbot_hosts
Gruppe (in inventories/hosts.yaml
) hinzu.cerbot
Ansible Rolle braucht. Am besten in der Config für den Host unter inventories/z9/host_vars/myhost.yaml
. Die zu setzenden Variablen sind:certbot__version_spec
: Diese Variable kann einfach auf den empty String gesetzt werden “”
.certbot__acme_account_email_address
: Gebe hier deine E-Mail für den ACME Account an.certbot__certificate_domains
: Gebe hier eine List an Namen an, für welche du Zertifikate haben möchtest.pubrp_http
hinzu. Diese sorgt dafür, dass incoming HTTP Traffic vom Public-Reverse-Proxy auf Port 80 und 31820 zugelassen wird.PublicRP_HTTP_Cert_Upstreams
hinzu, damit der HTTP Traffic vom Public-Reverse-Proxy durch die Firewall kommt.deploy.yaml
Playbook ausführen und du hast unter den standart Certbot Pfaden die Zertifikatsdateien (also unter: /etc/letsencrypt/live/myname.ccchh.net/
).