Certificat Let'S Encrypt : le serveur Apache supportera bientôt le protocole ACME

Par:
fredericmazue

jeu, 19/10/2017 - 15:16

L'autorité de certification Let's Encrypt annonce que le très populaire server HTTP Apache supportera bientôt le protocole ACME.

Les certificats SSL permettent de crypter les données échangés entre navigateur et un site web, ou entre un client de messagerie et un serveur de mails, par exemple. Ceci permet de protéger des données sensibles, comme par exemple le fameux couple nom d'utilisateur/mot de passe.

Beaucoup considèrent que SSL devrait être employé systématiquement sur Internet, et Google a même annoncé il y a quelques temps que la présence de SSL serait un des critères positifs pour le référencement d'un site. Mais avoir un site web 100% sécurisé se heurte bien sûr à des problèmes pratiques.

Notamment, jusqu'à il y a encore peu, les certificats SSL coûtaient assez chers. De plus leur installation sur un serveur n'est pas chose aisée pour qui n'est pas administrateur système.

Pour remédier à cela, l'EFF (Electronic Frontier Foundation) a lancé le projet Let's Encrypt qui délivre des certificats SSL gratuits depuis l'été 2015.

De plus Let's Ecrypt fourni une suite d'outils qui permettent d'obtenir, installer et renouveler des certificats extrêmement facilement.

Pour faire court, ces outils consistent essentiellement en une application cliente qui, via le protocole ACME (Automatic Certificate Management Environment) spécialement conçu pour Let's Encrypt, obtient la délivrance d'un certificat ou son renouvellement.

Jusqu'ici tout est vraiment très bien, ce que tout administrateur qui a eu l'occasion d'utiliser ces outils peut confirmer.

Cependant Let's Encrypt souhaite aller plus loin dans la facilité apportée à la délivrance et au renouvellement de certificats SSL. Pour cela, un module Apache est en cours de développement.

Ce module, baptisé mod_md,  permettra l'obtention et le renouvellement du certificat directement dans la configuration de l'hôte virtuel du site concerné.

Avant un hôte virtuel Apache configuré en HTTPS pouvait ressembler à ceci :

<VirtualHost *:443>
    ServerName www .your_domain.de
    ServerAlias your_domain.de
    Protocols h2 http/1.1

    SSLEngine on
    SSLCertificateFile /etc/mycerts/your_domain.de/fullchain.pem
    SSLCertificateKeyFile /etc/mycerts/your_domain.de/privkey.pem

    ...

</VirtualHost>

Avec le module mod_md chargé dans Apache, la configuration de l'hôte virtuel deviendra :

ManagedDomain your_domain.de 

<VirtualHost *:443>
    ServerName www .your_domain.de
    ServerAlias your_domain.de
    Protocols h2 http/1.1

     SSLEngine on

    ...

</VirtualHost>

On voit l'apparition d'une nouvelle directive de configuration : ManagedDomain. moyennant quoi la gestion des fichiers des certificats est entièrement automatisée.

mod_md est actuellement en version bêta actuellement. Pour le moment il comporte un petit défaut. Si le serveur Apache est généralement lancé sous l'utilisateur root sur les système de type UNIX, ses processus enfants sont lancé sous un utilisateur avec des droits restreints, pour des raisons de sécurité évidentes. Ce qui fait qu'un processus enfant n'est pas en mesure de relancer Apache (ou lui faire relire son fichier de configuration) lorsqu'un certificat est renouvelé. Sans ce redémarrage, Apache ne relit pas les certificats. Il convient donc de remédier à cela en redémarrant le serveur manuellement, en attendant qu'une solution soit trouvée.

Le module mod_md pour Apache est sur GitHub.