Apache Webserver auf Debian mit Letsencrypt Zertifikat schützen

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:

Le 1

Jetzt sehen wir, dass der Certbot die SSL-Konfigurationsdatei angepasst hat…

Le 2

… und das Zertifikat, incl. dem Private Key im Verzeichnis /etc/letsencrypt/live/ipam.euredomain.com/ abgelegt hat.

Le 3

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.

Beitrag Teilen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Seite ist durch reCAPTCHA und Google geschütztDatenschutz-Bestimmungen UndNutzungsbedingungen anwenden.