infrastructure:zertifikate
Zertifikate
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
Zertifikate für Services hinter einem Reverse-Proxy
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:
- Wir haben einen Wildcard DNS Record für
*.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. - Setze im ccchh-ansible Repo in der
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.- Setze als Port
31820
, da Certbot später auf diesen listened.
- Füge den Host, der das Zertifikat erhalten soll zur
certbot_hosts
Gruppe (ininventories/hosts.yaml
) hinzu. - Setze für den Host, der das Zertifikat erhalten soll, die Variablen, die die
cerbot
Ansible Rolle braucht. Am besten in der Config für den Host unterinventories/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.
- Falls du die Proxmox Firewall für den Host, der das Zertifikat generieren soll, eingeschaltet hast, füge die Security Group
pubrp_http
hinzu. Diese sorgt dafür, dass incoming HTTP Traffic vom Public-Reverse-Proxy auf Port 80 und 31820 zugelassen wird. - Falls sich der Host, der das Zertifikat generieren soll, in einem anderen VLAN als der Public-Reverse-Proxy befindet, gehe ins OPNsense und füge den Host unter Firewall → Aliases zu
PublicRP_HTTP_Cert_Upstreams
hinzu, damit der HTTP Traffic vom Public-Reverse-Proxy durch die Firewall kommt. - Nun kannst du das Ansible
deploy.yaml
Playbook ausführen und du hast unter den standart Certbot Pfaden die Zertifikatsdateien (also unter:/etc/letsencrypt/live/myname.ccchh.net/
).
infrastructure/zertifikate.txt · Last modified: 2023-08-03 02:45 UTC by julian