Hostsharing und Let’s encrypt   December 4th, 2015

Noch geht es nicht, bei Hostsharing automatisiert Let’s Encrypt Zertifikate anzulegen. Aber es kommt bald…

Jedoch kann ich heute schon mit Hilfe des 200 Zeilen Python Skriptes ACME-tiny in der Hostsharing Umgebung ein SSL Zertifikat erzeugen und mit LetsEncrypt erzeugen lassen.

Achtung: Bitte nur durchführen, wenn Du das ACME-tiny Skript verstehst! Es greift auf deinen privaten Schlüssel zu.

Hier die Schritte innerhalb eines Hostsharing Paketes:

Einmalig auszuführen:

mkdir ~/letsencrypt
cd ~/letsencrypt
openssl genrsa 4096 > account.key
# read and understand https://github.com/diafygi/acme-tiny
wget https://raw.githubusercontent.com/diafygi/acme-tiny/master/acme_tiny.py

Zum Erzeugen und Signieren der Zertifikate für eine Domain meinedomain.de, und gegebenenfalls von weiteren Subdomains, z.b. www:

Zuerst muss eine Konfigurationsdatei erstellt werden, mit dem Namen ~/letsencrypt/ssl.cnf. Sie kann so aussehen:

[req]
req_extensions = v3_req
distinguished_name = req_distinguished_name
prompt = no
 
[req_distinguished_name]
CN = www.meinedomain.de
 
[ v3_req ]
 
# Extensions to add to a certificate request
 
keyUsage = keyEncipherment, dataEncipherment
subjectAltName = @alt_names
 
[alt_names]
DNS.1 = meinedomain.de
DNS.2 = www.meinedomain.de

Dann sind folgende Befehle auszuführen:

domain=meinedomain.de
 
cd ~/letsencrypt
openssl genrsa 4096 > $domain.key
openssl req -new -sha256 -key $domain.key -config ssl.cnf > $domain.csr
domaindir=~/doms/$domain
challengedir=$domaindir/htdocs/.well-known/acme-challenge/
mkdir -p $challengedir
for subdomain in www
do
  cd $domaindir/subs/$subdomain && ln -s ../../htdocs/.well-known && cd -
  if [ -f $domaindir/subs/$subdomain/.htaccess ]
  then
    sed -i "s/^Redirect/#letsencrypt Redirect/g" $domaindir/subs/$subdomain/.htaccess
  fi
done
if [ -f $domaindir/htdocs/.htaccess ]
then
  sed -i "s/^Redirect/#letsencrypt Redirect/g" $domaindir/htdocs/.htaccess
fi
python acme_tiny.py --account-key ./account.key --csr ./$domain.csr --acme-dir $challengedir > ./$domain.crt
for subdomain in www
do
  rm -f $domaindir/subs/$subdomain/.well-known
  if [ -f $domaindir/subs/$subdomain/.htaccess ]
  then
    sed -i "s/^#letsencrypt Redirect/Redirect/g" $domaindir/subs/$subdomain/.htaccess
  fi
done
if [ -f $domaindir/htdocs/.htaccess ]
then
  sed -i "s/^#letsencrypt Redirect/Redirect/g" $domaindir/htdocs/.htaccess
fi
rm -Rf $challengedir
wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > ~/doms/$domain/etc/$domain.chain
cp $domain.key ~/doms/$domain/etc/$domain.key
cp $domain.crt ~/doms/$domain/etc/$domain.crt
ls -1 ~/doms/$domain/etc/*

Danach eine E-Mail an das Service Team von Hostsharing schicken, und um eine Einrichtung des Zertifikates bitten, mit Angabe wo die Zertifikats-Dateien gespeichert sind, und für welche Domain das Zertifikat bestimmt ist.

Und eine Erinnerung im Kalender setzen, dass das Zertifikat in 3 Monaten erneuert werden muss! 🙂

Tags: , ,
Posted in Hosting | Comments Closed

Bisher konnte man bei Hostsharing pro Paket nur ein SSL Zertifikat verwenden. Das ging zumindest an meiner Realität vorbei, da ich innerhalb meines Paketes verschiedenste Domains hoste.

Seit diesem Wochenende gibt es jetzt die Möglichkeit, über SNI mehrere SSL Zertifikate innerhalb eines Paketes, und sogar innerhalb einer Domain, zu verwenden: Siehe auch Hostsharing führt Server Name Indication (SNI) ein

Als nächster Schritt wird die automatische Verlängerung von SSL Zertifikaten mit letsencrypt geplant…

Ich möchte hier kurz beschreiben, wie ich für verschiedene Subdomains unterschiedliche SSL Zertifikate einrichten kann.

Wie aus einer E-Mail auf der Technikliste von Hostsharing zu lesen ist, müssen Subdomains in der Adminoberfläche von Hostsharing (oder auf der Kommandozeile mit hsscript) als eigenständige Domain angelegt werden (doms/meinesub.meinedomain.de/), und können nicht nur als Unterverzeichnis der Hauptdomain (doms/meinedomain.de/subs/meinesub) existieren.

Erst dachte ich, ich müsste unbedingt mit www.meinesub.meinedomain.de arbeiten, bis ich auf die Tatsache stieß, dass ich im Verzeichnis doms/meinesub.meinedomain.de/htdocs-ssl die Datei .htaccess löschen kann, und stattdessen meine Anwendung dort in htdocs-ssl installieren kann. Dann ist die Anwendung unter https://meinesub.meinedomain.de erreichbar!

Solange Lets Encrypt noch nicht bei Hostsharing läuft, kann man sich bei StartSSL auch für Subdomains kostenlose Zertifikate holen. Entsprechend der Anleitung im Hostsharing Wiki die Datei https.pem bauen, und dann in doms/meinesub.meinedomain.de/etc schieben, ebenfalls die Datei sub.class1.server.ca.pem, und dann eine freundliche E-Mail an den Hostsharing Service mit der Bitte zur Einrichtung des Zertifikats schicken 🙂

Tags: , , ,
Posted in Hosting | Comments Closed