letsencrypt on apache and linux
Kostenlose SSL-Zertifikate mit Let’s Encrypt auf Apache und Linux einzurichten ist einfacher als gedacht. Ich zeige, wie man mit dem dehydrated-Client (früher letsencrypt.sh) automatisch Zertifikate ausstellt und erneuert.
Let’s Encrypt Tool herunterladen
Zuerst das Verzeichnis anlegen und das Skript klonen:
cd /opt
git clone https://github.com/lukas2511/letsencrypt.sh
mkdir -p /etc/letsencrypt.sh
mkdir -p /var/www/letsencrypt.sh/
chown www-data:www-data /var/www/letsencrypt.sh
cp /opt/letsencrypt.sh/docs/examples/config /opt/letsencrypt.sh/config
cp /opt/letsencrypt.sh/docs/examples/domains.txt /opt/letsencrypt.sh/domains.txt
Konfiguration anpassen
Die Datei /opt/letsencrypt.sh/config.sh bearbeiten:
BASEDIR="/etc/letsencrypt.sh/"
WELLKNOWN="/var/www/letsencrypt.sh/"
PRIVATE_KEY="${BASEDIR}/private_key.pem"
HOOK="${BASEDIR}/hook.sh"
CONTACT_EMAIL="[email protected]"
Apache-Alias für ACME-Challenge konfigurieren
Die Datei /etc/apache2/conf.d/letsencrypt anlegen:
Alias /.well-known/acme-challenge /var/www/letsencrypt.sh/
Options None
AllowOverride None
Order allow,deny
Allow from all
Hook-Skript für Apache-Reload
Die Datei /etc/letsencrypt.sh/hook.sh anlegen:
#!/bin/bash
if [ ${1} == "deploy_cert" ]; then
echo " + Hook: Restarting Apache..."
/etc/init.d/apache2 reload
else
echo " + Hook: Nothing to do..."
fi
chmod +x /opt/letsencrypt.sh/hook.sh
Domain-Datei und Let’s Encrypt starten
Die Datei /opt/letsencrypt.sh/domains.txt mit den eigenen Domains befüllen, dann das Skript ausführen:
/opt/letsencrypt.sh/dehydrated -c
Automatische Erneuerung per Cronjob
In /etc/crontab einen täglichen Job einrichten, damit die Zertifikate automatisch erneuert werden:
1 1 * * * root /opt/letsencrypt.sh/dehydrated -c
vHost SSL-Konfiguration
SSLEngine On
SSLCertificateFile /etc/letsencrypt.sh/certs/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt.sh/certs/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt.sh/certs/example.com/chain.pem
SSLCACertificateFile /etc/letsencrypt.sh/certs/example.com/fullchain.pem
SSLHonorCipherOrder On
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
Fazit
Let’s Encrypt auf Apache und Linux einzurichten ist mit dem dehydrated-Skript gut dokumentiert und läuft nach der Einrichtung vollautomatisch. Kostenlose SSL-Zertifikate, die sich selbst erneuern – es gibt keinen Grund mehr, ohne HTTPS zu betreiben.


