Let’s Encrypt Zertifikat auf dem Raspberry Pi

In diesem Beitrag zeige ich euch wie ihr ein Let’s Encrypt Zertifikat auf dem Raspberry Pi nutzt. Ihr benötigt außerdem eine DynDNS Domain. Ich empfehle euch spdns.de und werde es auch anhand von diesem zeigen.

spdns Dynamic DNS Update-Client installieren:

Als erstes richten wir den spdns Update Client ein.

cd /home/pi

wget http://my5cent.spdns.de/wp-content/uploads/2014/12/spdnsUpdater_bin.tar.gz

tar -zxvf spdnsUpdater_bin.tar.gz

mv spdnsu.conf /etc/

mkdir updater

mv spdnsu updater/

chmod u+x updater/spdnsu

chown -R pi:pi /home/pi/updater/

Anschließend müsst ihr die Datei /etc/spdnsu.conf anpassen. Dort müsst ihr anpassen:

  • Host
  • Username
  • Passwort
crontab -e

Dort einfügen:

*/10 * * * * /home/pi/updater/spdnsu

Testen, ob alles funktioniert:

./home/pi/updater/spdnsu

Eure IP-Adresse findet ihr in der Datei /tmp/spdnsuIP.cnf

cat /tmp/spdnsuIP.cnf

Beispielausgabe:

currentIP=11.222.333.444

Portfreigabe einrichten:

Anschließend müsst ihr eine Portfreigabe einrichten. Ich zeige das hier mit einer AVM FRITZ!Box 7490

Meldet euch unter fritz.box auf eurer FRITZ!Box an und geht auf Internet > Freigaben

pf-fb

pf-fb2

pf-fb3

Let’s Encrypt herunterladen und Zertifikat erstellen:

Jetzt geht’s ans Zertifikat.

sudo apt install git -y

sudo git clone https://github.com/letsencrypt/letsencrypt

cd letsencrypt

sudo ./letsencrypt-auto -d host.spdns.de --apache -m mail@domain.tld --redirect --agree-tos

Passt hier die Domain (host.spdns.de) und die Mail-Adresse (mail@domain.tld) an.

Wenn alles geklappt hat findet ihr im Verzeichnis /etc/letsencrypt/live/host.spdns.de die Zerfikate. Nun könnt ihr auch die Zeilen SSLCertificateFileSSLCertificateKeyFile anpassen.

Apache Webserver anpassen:

Nun wird der Apache Webserver angepasst.

sudo nano /etc/apache2/sites-available/default-ssl.conf

Dort am Ende der Datei einfügen:

<VirtualHost *:443>
        ServerName host.spdns.de
        ServerAdmin mail@domain.tld
        DocumentRoot /var/www/owncloud/
        SSLEngine On
        SSLCertificateFile /etc/letsencrypt/live/host.spdns.de/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/host.spdns.de/privkey.pem
        <Directory /var/www/owncloud/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Require all granted
        </Directory>
        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature On
        <IfModule mod_headers.c>
                Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
        </IfModule>
</VirtualHost>

Passt den Servernamen, die Mail-Adresse und das Verzeichnis des Webservers an.

sudo nano /etc/apache2/sites-available/ssl.conf

Dort einfügen:

<virtualhost *:443>
        SSLEngine On
        SSLCertificateFile /etc/letsencrypt/live/host.spdns.de/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/host.spdns.de/privkey.pem
        DocumentRoot /var/www/owncloud
</virtualhost>

Anschließend muss die Datei aktiviert werden

sudo a2ensite ssl.conf

Nun müsst ihr nur noch den Apache2 neustarten.

sudo service apache2 restart

Danach zeigt euer Webbrowser ein grünes Schloss an.

rpi-le

Anzeige

Steven Seifried

Ich bin Steven, seit Juli 2014 veröffentliche ich auf canox.net die unterschiedlichsten Beiträge zu Linux & Android. Seit September 2015 verwende ich privat ausschließlich Linux (aktuell Ubuntu GNOME 16.04 LTS)

2 Antworten

  1. Heiko sagt:

    Hallo,
    eine frage zu diesem beitrag hätte ich. funktioniert Let’s Encrypt auch in einer localen (Intranetumgebeung) wo der webserver nicht von aussen über eine öffentliche IP erreichbar ist? z.B. raspberry.fritz.box?

  2. Steven Seifried sagt:

    Über fritz.box und die internen IPs wird es nicht funktionieren, da fritz.box und die internen IP-Adressen nicht für Let’s Encrypt erreichbar sind

Schreibe einen Kommentar

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