Let’s encrypt Zertifikate in Foreman nutzen

Im Zuge des Foreman Updates von 1.16 auf 1.21 (in gefühlt tausend Schritten) und nachfolgender Migration von Ubuntu 16.04 auf 18.04 sollte auch das sehr leidige Zertifikat-Thema endlich erledigt werden. Mache mögen es als bequem empfinden im Browser ständig irgendwelche Ausnahmen einfrickeln zu müssen, ich eher nicht.

Da die Foreman Installation vor dem Update ohnehin gerade gezogen werden musste und auch die kaputten Dependencies im System einer Migration eher hinderlich gewesen wären – also repariert wurden –  ist die Installation aktuell in einem Zustand, der auch größere Konfigsänderungen zulässt, ohne wegen einer im falschen Moment nach oben treibenden Leiche, stundenlang in der falschen Ecke einen Fehler zu suchen.

Es hat trotzdem gefühlt ewig gedauert alles zum Laufen zu bekommen. Am Ende (wenn man weiss wie) ist es aber immer ganz einfach:

  1. Certbot installieren und ausführen
  2. foreman-installer –foreman-server-ssl-cert /etc/letsencrypt/live/foreman.ntrm.de/cert.pem –foreman-server-ssl-chain /etc/letsencrypt/live/foreman.ntrm.de/chain.pem –foreman-server-ssl-key /etc/letsencrypt/live/foreman.ntrm.de/privkey.pem –puppet-server-foreman-ssl-ca /etc/ssl/certs/ca-certificates.crt –foreman-proxy-foreman-ssl-ca /etc/ssl/certs/ca-certificates.crt ausführen.
  3. Während des Foreman-Installer Laufs in /etc/puppetlabs/puppet/puppet.conf den Servernamen kontrollieren und bei Nutzung von Aliasen ggfs. umsetzen.

Das war’s. Danach funktioniert alles wie es soll.

Es bietet sich an, während des Installer Laufs in einer Shell

tail -f /var/log/puppetlabs/puppetserver/puppetserver.log

und in einer zweiten Shell

tail -f /var/log/foreman-proxy/proxy.log

laufen zu lassen. Damit hat man die gröbsten Macken direkt im Blick, auch bei den Verbindungstests.

Falls der Foreman Installer beim ersten Versuch hinfällt und sich ungefähr so beschwert:

/Stage[main]/Foreman_proxy::Register/Foreman_smartproxy[foreman.ntrm.de]: Failed to call refresh: Proxy foreman.ntrm.de cannot be refreshed: Unable to communicate with the proxy: ERF12-2530 [ProxyAPI::ProxyException]: Unable to detect features ([RestClient::SSLCertificateNotVerified]: SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get issuer certificate)) for proxy https://c2001.domain.de:8443/features Please check the proxy is configured and running on the host.
/Stage[main]/Foreman_proxy::Register/Foreman_smartproxy[foreman.ntrm.de]: Proxy foreman.ntrm.de cannot be refreshed: Unable to communicate with the proxy: ERF12-2530 [ProxyAPI::ProxyException]: Unable to detect features ([RestClient::SSLCertificateNotVerified]: SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get issuer certificate)) for proxy https://c2001.domain.de:8443/features Please check the proxy is configured and running on the host.

Passt was mit dem Servernamen in der puppet.conf nicht, oder man war bei Schritt 3 wahlweise zu langsam oder zu schnell.

Einfach nochmal probieren.

Related Post