Kostenlose Let’s Encrypt Zertifikate einrichten 2020

  • von

Nachdem wir unseren Rootserver und Webseiten eingerichtet haben, können die kostenlose Let’s Encrypt Zertifikate einrichten. Glücklicherweise können wir uns hierzu bei Let’s Encrypt kostenlose Zertifikate erstellen.

Let’s Encrypt Zertifikat erstellen und einrichten

Ein Kostenloses Let’s Encrypt Zertifikat erstellen wir mit dem Programm certbot ein Projekt von Electronic Frontier Foundation, welches wir mit dem apt Befehl installieren können.

sudo apt install certbot python-certbot-nginx

Nachdem wir das Programm certbot auf unserem Rootserver installiert haben, können wir auch schon unser kostenloses Let’s Encrypt Zertifikat erstellen. Dazu werden wir folgenden certbot Befehl ausführen.

sudo certbot --nginx

Dieser Befehl wird anhand der NGINX Webserver Konfiguration, ein passendes Let’s Encrypt Zertifikat mit allen Webseiten erstellen und entsprechend die NGINX Webserver Konfiguration anpassen.

Let’s Encrypt Zertifikat erstellen

Natürlich können wir unser Let’s Encrypt Zertifikat anhand der NGINX Webserver Konfiguration erstellen lassen, ohne das die NGINX Webserver Konfiguration im Anschluss angepasst wird. Das ist sinnvoll, falls wir keine Standard NGINX Websever Konfiguration verwenden.

sudo certbot certonly --nginx

Alternativ können wir die Webseiten auch benennen die wir in unser Let’s Encrypt Zertifikat aufnehmen möchten.

sudo certbot certonly --standalone -d example.info -d www.example.info

Nach unserem Beispiel oben haben wir jetzt ein kostenloses Let’s Encrypt Zertifikat für unsere Webseiten example.info und www.example.info erstellt. Natürlich können so auch die Subdomains in das Zertifikat aufgenommen werden, in dem wir den obigen Befehl um -d subdomain.example.info ergänzen. Leider können wir für die Subdomains keine Wildcard „*“ einrichten und müssen die verfügbaren Subdomains gesondert aufführen.

sudo certbot certonly --standalone -d example.info -d www.example.info -d subdomain.example.info

Falls wir bereits ein Let’s Encrypt Zertifikate erstellt haben und möchten nun eine Subdomain hinzufügen, können wir folgenden Befehl ausführen.

sudo certbot --expand -d example.info -d www.example.info -d subdomain.example.info

Hierbei ist es aber wichtig, das die zuvor registrierten Domains nochmal angegeben werden, wie wir es oben im Beispiel gemacht haben.

Let’s Encrypt Zertifikat einrichten

Nachdem wir unser Zertifikat nun erstellt haben, müssen wir das kostenlose Let’s Encrypt Zertifikat natürlich noch einrichten. Dazu öffnen wir die NGINX Webserver Konfiguration Datei. Vielleicht schauen wir uns nochmal den Blog Beitrag Super schneller NGINX Webserver installieren und einrichten 2020 an, um uns die NGINX Webserver Einrichtung wieder ins Gedächtnis zu rufen.

sudo nano /etc/nginx/sites-availables/example.info.conf

Damit das Let’s Encrypt Zertifikat von NGINX Webserver eingebunden werden kann, müssen wir die rot markierten Textzeilen in unsere Konfiguration Datei hinzufügen bzw. anpassen.

server {
        listen 443 ssl;
        listen [::]:443 ssl;

        server_name example.info www.example.info;

        root /var/www/example.info;
        index index.html index.php;

        location / {
                try_files $uri $uri/ =404;
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        }
 
        ssl_certificate /etc/letsencrypt/live/example.info/fullchain.pem; 
        ssl_certificate_key /etc/letsencrypt/live/example.info/privkey.pem; 
        include /etc/letsencrypt/options-ssl-nginx.conf; 
     }
   

Jetzt brauchen wir den NGINX Webserver nur noch neu starten und wir haben unser kostenloses Let’s Encrypt Zertifikat eingebunden. Dadurch haben wir unseren Debian Server entsprechend abgesichert.

sudo systemctl restart nginx

Nun sollten wir unsere Webseite über das https in der url erreichen können. Damit unsere Webseite nur noch mit unserem Let’s Encrypt Zertifikat erreichbar ist, sollten wir in unsere NGINX Konfiguration eine Weiterleitung einrichten. Dies machen wir, indem wir die rot markierten Textzeilen am Ende unsere Konfiguration Datei hinzufügen.

server {
    ...
}

server {
    if ($host = www.example.info) {
        return 301 https://$host$request_uri;
    } 
    if ($host = example.info) {
        return 301 https://$host$request_uri;
    } 
    listen 80;
    listen [::]:80;

    server_name example.info www.example.info
    return 404; 
}

Somit sollten die Webseiten mit http://example.info und http://www.example.info auf https umgeleitet werden, wenn sobald wir den NGINX Webserver neugestartet haben.

sudo systemctl restart nginx

Let’s Encrypt Zertifikat erneuern

Da die Let’s Encrypt Zertifikate nur für einen Zeitraum von 3 Monaten erstellt werden, müssen wir unser Let’s Encrypt Zertifikat erneuern.

sudo certbot renew --dry-run

Let’s Encrypt Zertifikat per Crontab erneuern

Die Certbot-Pakete auf unserem Rootserver werden mit einem Cron-Job oder einem Systemd-Timer geliefert, der unsere Let’s Encrypt Zertifikat per Crontab erneuert, bevor sie ablaufen. Wir müssen Certbot nicht erneut ausführen, es sei denn, Sie ändern Ihre Konfiguration. Sie können die automatische Verlängerung Ihrer Zertifikate testen, indem Sie diesen Befehl ausführen.

/etc/crontab/
/etc/cron.*/*
systemctl list-timers

Nun haben wir unser kostenloses Let’s Encrypt Zertifikat erstellt und entsprechend im NGINX Webserver eingerichtet.

 Let’s Encrypt ist eine Marke der Internet Security Research Group. Alle Rechte vorbehalten.


ein Service Additional Content

Schreibe einen Kommentar

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