Let's encrypt und vhosts

Submitted by Erik Wegner on
Body

Let's encrypt erzeugt automatisch Zertifikate und prüft die Inhaberschaft der entsprechenden Domains. Bei virtuellen Servern können auch mehrere Domains genutzt werden, dabei hilft folgendes Vorgehen.Zuerst wird die Konfiguration von Apache erweitert. Bei OpenSUSE 13.1 kann die Datei /etc/apache/conf.d/apache2-manual-letsencrypt.conf angelegt werden erweitert:

Alias "/.well-known/acme-challenge/" "/srv/www/htdocs/.well-known/acme-challenge/"
<Directory "/srv/www/htdocs/.well-known/acme-challenge">
 Require all granted
 ForceType 'text/plain'
</Directory>

Die Inhaberschaft einer Domain wird geprüft, indem eine zufällig benannte Datei auf dem Webserver abefragt wird. Die Alias-Direktive sorgt dafür, dass der Abruf einer Datei aus dem Verzeichnis auf ein zentrales Verzeichnis auf dem Server umgelenkt wird. Dies gilt zentral für alle Domains auf dem Server, weil es außerhalb eines spezifischen Hosts definiert ist.

Die zweite Anforderung an die Datei ist der Header, der vom Server ausgeliefert wird. Hier muss unbedingt text/plain gesendet werden.

Mit dieser Vorbereitung (und einem reload der Apache-Konfiguration) kann nun let's encrypt aufgerufen werden:

./letsencrypt-auto --rsa-key-size 4096 --agree-dev-preview --server https://<public-api-server>/directory -d domain1 -d domain2 -d domain3 -domain4 -a webroot --webroot-path /srv/www/htdocs/ certonly

Das Zertifikat wird nun erzeugt, die Inhaberschaft aller Domains geprüft. Anschließend landen die neuen Dateien im Pfad /etc/letsencrypt/live/domain1/.

Damit kann die Apache-Konfiguration angepasst werden.