Dieser Artikel ist die Fortsetzung oder Erweiterung meines Artikels bezüglich IPAM auf einem Raspberry Pi.
Nach der Aktivierung von TLS, schützen wir den Apache Webserver jetzt noch mit einem öffentlichen Zertifikat von Letsencrypt.
Hinweise:
- Damit das Ausstellen, genauer die Validierung des Zertifikats funktioniert, muss das System via HTTP (also TCP Port 80) aus dem Internet erreichbar sein.
- Damit die automatische Erneuerung funktioniert, muss dies dauerhaft der Fall sein.
- Ich persönlich empfehle das nicht, ohne einen entsprechenden Reverse Proxy oder min. eine Web Application Firewall umzusetzen.
Insofern bitte nur machen, wenn man genau weiß, was man tut und das System entsprechend geschützt ist!
Certbot empfiehlt die Verwendung des Snap Pakets für die Installation, also machen wir das…
Zuerst Update des Systems
sudo apt update
sudo apt upgrade -y
Installation von snap
sudo apt install snapd -y
Installation von Core
sudo snap install core
Core aktualisieren (sollte eigentlich aktuell sein)
sudo snap refresh core
Certbot Snap Package installieren
sudo snap install --classic certbot
Certbot Binaries in den Userpfad verlinken, um sie direkt aufrufen zu können.
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Eventuell noch anpassen der vorhandenen Virtual Host Konfiguration, wenn der Servername bspw. geändert werden muss.
sudo nano /etc/apache2/sites-available/phpipam.conf
Die ServerName Direktive in der Host Konfiguration wird für die Erstellung des Zertifikats und den dort enthaltenen CN (Common Name) verwendet.
Jetzt muss also Zeile 4 mit dem Namen übereinstimmen, über welchen das System später, mit dem Browser aufgerufen wird.
<VirtualHost *:80>
ServerAdmin webmaster@euredomain.com
DocumentRoot "/var/www/html/phpipam"
ServerName ipam.euredomain.com
ServerAlias ipam.euredomain.com
<Directory "/var/www/html/phpipam">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog "/var/log/apache2/phpipam-error_log"
CustomLog "/var/log/apache2/phpipam-access_log" combined
</VirtualHost>
Check:
- System ist aus dem Internet via HTTP erreichbar?
- ServerName in der Host Konfiguration stimmt?
dann holen wir uns mal unser Zertifikat…
sudo certbot --apache -d ipam.euredomain.com
Jetzt startet ein Wizard, der Euch diverse Fragen stellt:
- Eure E-Mail Adresse für die Erinnerung, wenn das Zertifikat abläuft
- Akzeptieren der Terms of Service -> Y
- Mitteilungen von Electronic Frontier Foundation zu neuen Themen -> N
Diese beantwortet ihr und dann sollte das Ergebnis in etwa so aussehen:
Jetzt sehen wir, dass der Certbot die SSL-Konfigurationsdatei angepasst hat…
… und das Zertifikat, incl. dem Private Key im Verzeichnis /etc/letsencrypt/live/ipam.euredomain.com/ abgelegt hat.
Noch ein Reload der Konfiguration…
sudo systemctl reload apache2
Wenn ihr jetzt die Webseite https://ipam.euredomain.com aufruft, solltet ihr keine Zertifikatsfehlermeldung mehr erhalten, da das Zertifikat gültig ist.
Denkt hierbei natürlich an den DNS Record oder die Pinpoint DNS Zone am internen DNS Server, falls Euer lokaler Zonenname abweicht…
Abschließend noch der Test, ob die Erneuerung des Zertifikats funktionieren „würde“…
sudo certbot renew --dry-run
Das war’s, ab jetzt ist euer Webserver, oder das phpIPAM System mit einem öffentlichen Zertifkat versehen.