Dernièrement j’ai dû, pour le compte d’un client, faire une étude pour rendre un site compatible ATS au niveau de la sécurité. Il en est ressorti plusieurs problèmes :
- La CVE-2016-2107 pour cause de lib-openssl pas à jour.
- Des Ciphers et des protocoles pas top…
- Pas de PFS.
Le bilan : une note de « F ».
Du coup, j’ai regardé un de mes domaines SSL et je me suis rendu compte que moi aussi je n’étais pas au top… Du coup une petite correction s’imposait.
Première étape : mettre à jour le container apache
Cette mise à jour du container apache permet d’avoir les dernières versions de lib-openssl et d’apache.
Pour ça, rien de plus simple :
docker-compose build httpd ; docker-compose stop httpd ; docker-compose rm httpd ; docker-compose up -d httpd
Seconde étapes : la configuration
aller sur Mozilla SSL Configuration Generator pour trouver la configuration qui vous va bien. Pour moi je suis parti là dessus.
Troisième étape : un peu de ménage
En effet, j’ai du faire le ménage dans la configuration de base de RHEL7.
Quatrième étape : Let’s Encrypt
Pour avoir un certificats SSL gratuit, il suffit d’utiliser Let’sEncrypt ! Cependant, faites gaffe, il existe plein de truc plus ou moins lourd pour générer des certificats SSL chez Let’s Encrypt. Perso j’ai retenu acme-tiny car je n’ai rien trouvé de plus petit !
Une fois acme-tiny en place, au niveau de votre serveur apache, il faut juste ouvrir votre port 80 et tout rediriger sur le 443 sauf bien sûr le challenge Let’s Encrypt :
<virtualhost>
ServerName sub.domain.ltd
ServerAdmin me@domain.ltd
### Let's encrypt
Alias /.well-known/acme-challenge/ /var/www/challenges/
<directory>
# Allow open access: Require all granted
</directory>
### Redirect to HTTPs
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/
RewriteRule (.*) https://sub.domain.ltd$1 [R=301,L]
</virtualhost>
Et c’est tout ! Plus qu’à contrôler avec Qualys SSL Labs.