Zum Inhalt springen
Security & Datenschutz

Let’s Encrypt Zertifikat für Apache auf Ubuntu mit certbot

certbot: Let's Encrypt Zertifikat für Apache (apache2) auf Ubuntu erstellen, HTTPS-Weiterleitung einrichten, Zertifikate erneuern und löschen.

Von DI Herwart Wermescher, MBA ↗

Ausgangsbasis

Wenn Du ein Let’s Encrypt Zertifikat für eine Apache-Website (apache2) erstellen willst, musst Du zunächst den certbot installieren. Brauchst Du stattdessen Zertifikate ohne Apache oder nginx, beschreibt das ein eigener Beitrag.

apt install -y python3-certbot-apache

Weiters gehst Du von einem existierenden, einfachen apache conf file aus. Diese liegt unter /etc/apache2/sites-available/ und trägt die extension .conf. Als Beispiel nehme ich hier eine einfache PHP/Laravel config für den Server meinedomain.com bzw. www.meinedomain.com. Wie Du den passenden Webstack vorbereitest, zeigt Dir der Beitrag PHP auf Ubuntu installieren.

/etc/apache2/sites-available/meinedomain.com.conf

<VirtualHost *:80>
    ServerName meinedomain.com
    ServerAlias www.meinedomain.com
    ServerAdmin herwart@wermescher.com
	DocumentRoot /var/www/laravel/meinedomain.com/public
	<Directory /var/www/laravel/meinedomain.com>
           Options Indexes FollowSymLinks MultiViews
           AllowOverride All
           Order allow,deny
           allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/meinedomain.com.error.log
    CustomLog ${APACHE_LOG_DIR}/meinedomain.com.access.log combined
</VirtualHost>

Zertifikat mit certbot --apache erstellen

Nun will ich für beide Domains meinedomain.com bzw. www.meinedomain.com:

Nun musst Du nur noch beide Domains angeben um die Zertifikate zu erzeugen UND die zusätzliche Apache Config zu produzieren:

certbot --apache -d meinedomain.com -d www.meinedomain.com

Dabei musst Du eine Frage beantworten:

  • 1: No redirect – Make no further changes to the webserver configuration.
  • 2: Redirect – Make all requests redirect to secure HTTPS access. Choose this for

Wähle dabei die 2. In diesem Fall wird

  • Deine Apache conf verändert (Weiterleitung von http auf https) und
  • eine weitere Apache Conf (/etc/apache2/sites-available/meinedomain.com-le-ssl.conf) angelegt

Deine Zertifikate kannst Du nun unter folgendem Link finden:

/etc/letsencrypt/live/meinedomain.com/fullchain.pem

Damit HTTP und HTTPS überhaupt von außen erreichbar sind, solltest Du die passenden Ports freigeben — wie das geht, zeigt Dir der Beitrag Firewall mit ufw konfigurieren.

Renewal aller fälligen Zertifikate

sudo certbot renew
sudo certbot renew --dry-run

Damit die Erneuerung automatisch läuft, kannst Du einen Cronjob für das Renewal einrichten.

Löschen eines Zertifikats

Wenn z.B. eine Domain nicht mehr benötigt wird:

sudo certbot delete --cert-name xxxxx.com

Über diesen Blog

Ein Sammelsurium an Denkanstößen.

Hier sammle ich Wissen, Argumente und Links zu allem, was mich beschäftigt — von Technik über Küche bis Nachhaltigkeit. Beruflich berate ich zu Cybersecurity.