letsencrypt ist eine Zertifizierungsstelle, welche es erlaubt Zertifikate vollautomatisch und GRATIS zu generieren. Damit entfällt endlich die müsahme manuelle Erstellung von Zertifikaten. Und so geht es:
Ich installiere letsencrypt auf einem Ubuntu 16.04 System mit installiertem Apache:
-
- Letsencrypt installieren
sudo apt install letsencrypt python-letsencrypt-apache
- Zertifikat generieren
Bevors mit dem Zertifikate erstellen losgeht, muss ich zuerst den Apache-Dienst stoppen, weil letsencryp einen standalone Server auf port 80 verwendet:sudo service apache2 stop
Nun generiere ich das Zertifikat mit “certonly”. Damit modifiziert mir letsencrypt nicht das Apache-Config File. Dieses möchte ich selber modifizieren… Für jede Domain kann dieser Befehl wiederholt werden:
sudo letsencrypt certonly --agree-tos --email postmaster@yourdomain.ch -d www.yourdomain.ch
Und voilà:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/nextcloud.domain.ch/fullchain.pem. Your cert will expire on 2017-01-23. To obtain a new version of the certificate in the future, simply run Let's Encrypt again. - Some rewrite rules copied from /etc/apache2/conf- enabled/nextcloud.conf were disabled in the vhost for your HTTPS site located at /etc/apache2/conf-enabled/nextcloud-le-ssl.conf because they have the potential to create redirection loops.
Nun den Apache wieder starten:
sudo service apache2 start
- Das Script erstellt vollautomatisch die benötigten Zertifikate und legt diese ab unter
/etc/letsencrypt/live/your.domain.zz/
Das Zertifikat kann nun am conf-File des Apachen eingetragen werden
SSLCertificateKeyFile /etc/letsencrypt/live/your.domain.zz/privkey.pem SSLCertificateFile /etc/letsencrypt/live/your.domain.zz/cert.pem SSLCertificateChainFile /etc/letsencrypt/live/your.domain.zz/chain.pem
Renewal
Letsencrypt stellt Zertifikate aus, welche 90 Tage gültig sind. Es wird empfohlen, dass alle 60 Tage ein renewal durchgeführt wird. Dies kann am einfachsten über einen cron-job erledigt werden, der monatlich ausgeführt wird:
sudo vi /etc/cron.monthly/letsencrypt-renew
#!/bin/bash echo "Stop Apache2 Service" service apache2 stop echo "Renew letsencrypt certificates" letsencrypt --standalone renew echo "Restart Apache2 Service" service apache2 start exit 0
sudo chmod +x /etc/cron.monthly/letsencrypt-renew
- Letsencrypt installieren
Löschen
Mal erstellte Zertifikate, welche nicht mehr benötigt werden, können gelöscht werden:
sudo letsencrypt delete -d xx.domain.xx