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

Aus Tutorials
Zur Navigation springen Zur Suche springen
Zeile 64: Zeile 64:
Obenstehendes Script hat bei mir nur bei manuellen Aufruf funktioniert, jedoch nicht als CronJob.
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:
Da auch die Umgebungsvariablen augenscheinlich richtig waren, habe ich folgende Skripte hinzugefügt:


Das erste Skript aktualisiert den Server unmittelbar davor:  
Das erste Skript aktualisiert den Server unmittelbar davor:  

Version vom 7. Juli 2018, 14:31 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