Renouvellement certbot pour apache debian avec http-01

Bon Let’s Encrypt met fin au support du challenge type TLS-SNI. Donc on passe à autre chose, si possible automatisé. On se tente un challenge type http-01, qui passe finalement avec

certbot certonly –webroot -w /var/www -d www.caronico.fr

Tout simplement. Possibilité de le faire un mode –dry-run pour le faire un coup à blanc, ensuite pour de vrai, possibilité de vérifier la date et les détails du certificat dans le navigateur web.

Enfin refaire un coup de certbot renew –dry-run

pour simuler un nouveau rafraichissement du certificat.

HTTPs armoring

So Mozilla is offering a nifty HTTPs testing tool at https://observatory.mozilla.org/ 

After I tried that, had to fix a few things :). D- rating (ouch !)

HTTP Strict Transport Security

First enable the header module with command line :

a2enmod headers

Then edit the vhosts files into the /etc/apache2/sites-available by adding the header entry (right below the VirtualHost entry)

Header add Strict-Transport-Security: « max-age=31536000;includeSubdomains »

And restart Apache 2 with :

systemctl restart apache2

And then check if nothing is wrong in the startup by looking into the log file for the daemon at :

less /var/log/daemon.log

Implement HTTP Headers

Install the WordPress extension HTTP Headers from Dimitar Ivanov. In the security options, turn ON the following restrictions :

X-Frame-Options DENY
X-XSS-Protection 
X-Content-Type-Options nosniff

And rescan….

That is how you end up with a A+ Rating.

(Don’t celebrate too much, my website rolled down from A to D- in…. 11 months between November 2016 to November 2017… looks like a fight to keep up and have a recheck every 6 months !).

HTTPs et StartCom

Mise à jour Aout 2016.

Alors voici quelques notes sur les certificats SSL de StartCom et Apache2, maintenant à jour pour la version 2.4, et avec une chaine de certificate complète en SHA2.

Se loger par certificat sur https://startssl.com/Certificates

Générer le fichier de demande de certificat en local avec OpenSSL (instructions fournies durant le processus de création de certificat sur le site web) puis en retour on reçoit un fichier ZIP de StartSSL/StartCom.

Stocker les fichiers dans /etc/ssl/localcerts sous les noms

apache.key
apache.pem  (Renommer le fichier .crt en .pem)
bundle.crt (le fichier c'est le fichier 1_root_bundle.crt renommé en bundle.crt, fournir dans le .ZIP de StartSSL quand ils transmettent le certificat).

Télécharger sur http://www.startssl.com/certs/  les deux fichiers :

http://www.startssl.com/certs/ca-sha2.pem
et
http://www.startssl.com/certs/class1/sha2/pem/sub.class1.server.sha2.ca.pem
Et stocker le tout dans /etc/ssl/certs

Editer le fichier de config SSL de Apache2 (/etc/apache2/sites-enabled/default-ssl) et configurer le bloc SSL tel quel :

(mis à jour pour désactiver SSL v2, V3, ainsi que cipher RC4

SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLCertificateFile    /etc/ssl/localcerts/apache.pem
SSLCertificateKeyFile /etc/ssl/localcerts/apache.key
SSLCertificateChainFile /etc/ssl/localcerts/bundle.crt
SSLCACertificateFile /etc/ssl/certs/ca-sha2.pem

Le respect de cette config est importante, sinon le serveur n’est pas authentifié correctement.

Il faut supprimer la passphrase du certificate pour que Apache2 se lance sans poser de question. Pour cela.

You want to remove the passphrase from a key file. Run this:

openssl rsa -in apache.key -out newapache.key