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: , ,
This entry was posted on Friday, December 4th, 2015 at 2:38 pm and is filed under Hosting. You can follow any responses to this entry through the RSS 2.0 feed.Both comments and pings are currently closed.

No Responses