SSL Zertifikat mit LetsEncrypt (Linux): Unterschied zwischen den Versionen

Aus Tutorials
Zur Navigation springen Zur Suche springen
Zeile 61: Zeile 61:
fi
fi
</pre>
</pre>
Obenstehendes Script hat bei mir nur bei manuellen Aufruf funktioniert, jedoch nicht als CronJob.
Da auch die Umgebungsvariablen augenscheinlich richtig waren, habe ich folgende Skripte hinzugefügt:
Das erste Skript aktualisiert den Server unmittelbar davor:


<pre>
<pre>
Zeile 75: Zeile 80:
sudo shutdown -r now
sudo shutdown -r now
</pre>
</pre>
und das zweite Skript ruft das ursprüngliche über einen Login auf:


<pre>
<pre>
Zeile 85: Zeile 92:
ssh localhost -p 22 -l pi -i /home/pi/.ssh/id_rsa -tt "sudo /usr/local/bin/renew_ssl_letsencrypt.sh" 2>&1 > /dev/null;
ssh localhost -p 22 -l pi -i /home/pi/.ssh/id_rsa -tt "sudo /usr/local/bin/renew_ssl_letsencrypt.sh" 2>&1 > /dev/null;
</pre>
</pre>
Seitdem funkioniert das Erneuern des Zertifikates.


== Links ==
== Links ==

Version vom 7. Juli 2018, 14:30 Uhr

Cerbot Client

Installation

sudo mkdir /opt/certbot
cd /opt/certbot
sudo wget https://dl.eff.org/certbot-auto
sudo chmod a+x certbot-auto
sudo ./certbot-auto

Zertifikate erstellen

sudo /opt/certbot/certbot-auto --apache certonly

Wenn mehr als ein Subdomain ausgewählt wurde, dann wird das Zertifikat mit mehreren Alternative names erstellt.

Zertifikate in Apache integrieren

In der Apache Konfigurationsdatei /etc/apache2/sites-available/<domain>-ssl.conf folgende Zeilen hinzufügen / anpassen:

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/<domain>/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<domain>/privkey.pem

Zertifikate erneuern

Zertifikatserneuerung testen:

sudo /opt/certbot/certbot-auto renew --dry-run

Als CronJob einrichten:

0 9 * * * /opt/certbot/certbot-auto renew --quiet --no-self-upgrade

Skript

Datei öffnen

sudo vi /usr/local/bin/renew_ssl_letsencrypt.sh

und mit folgenden Inhalt befüllen:

#!/bin/bash

/opt/certbot/certbot-auto renew --quiet --no-self-upgrade 2>&1 | tee /home/pi/logs/letsencrypt_today.log >> /home/pi/logs/letsencrypt.log

if [ ${PIPESTATUS[0]} -eq 0 ]
then
echo "Let's encrypt certificate sucessfully updated..." | mail -s "Let's encrypt successfully updated on `date +\"%d.%m.%Y um %H:%M\"`" <mail address>;
else
cat /home/pi/logs/letsencrypt_today.log | mail -s "Let's encrypt update on `date +\"%d.%m.%Y um %H:%M\"` failed" <mail address>;
fi

Obenstehendes Script hat bei mir nur bei manuellen Aufruf funktioniert, jedoch nicht als CronJob. Da auch die Umgebungsvariablen augenscheinlich richtig waren, habe ich folgende Skripte hinzugefügt:

Das erste Skript aktualisiert den Server unmittelbar davor:

/usr/local/bin/update_and_restart.sh 
#!/bin/bash

sudo apt-get update && sudo apt-get -y upgrade

#mail -s "Raspberry will be restarted now..." <mail address>;

sudo shutdown -r now

und das zweite Skript ruft das ursprüngliche über einen Login auf:

sudo vi /usr/local/bin/renew_ssl_letsencrypt.sh
#!/bin/bash

ssh localhost -p 22 -l pi -i /home/pi/.ssh/id_rsa -tt "sudo /usr/local/bin/renew_ssl_letsencrypt.sh" 2>&1 > /dev/null;

Seitdem funkioniert das Erneuern des Zertifikates.

Links

https://letsencrypt.org/

https://certbot.eff.org/

https://certbot.eff.org/docs/using.html#where-are-my-certificates


Zurück zu Ubuntu