Génération et installation d'un certificat pour Apache+mod_ssl

 

Ce document vise à faciliter la mise en œuvre d’un accès chiffré HTTPS pour les services web offerts par Apache. Il vous guidera tout au long de ce processus, de la création de la requête de signature à la configuration fine d’Apache afin d’offrir un accès HTTPS sûr et compatible avec la majeure partie des clients. Si la présente documentation ne devait pas suffire ou présenter des lacunes, nous vous invitons à prendre contact avec la cellule sécurité IT en ouvrant un ticket au 1234 (service : « certificats pour serveurs »).

Prérequis

Apache doit disposer du module mod_ssl, lui offrant la possibilité de gérer les connexions chiffrées. Son installation est triviale sous RedHat et dérivés en effectuant un

yum install mod_ssl

et en s’assurant que le fichier de configuration relatif à la cryptographie (/etc/httpd/conf.d/ssl.conf) contienne bien la ligne LoadModule ssl_module modules/mod_ssl.so et qu’elle ne soit pas mise en commentaire.

...
LoadModule ssl_module modules/mod_ssl.so
...

Génération de la clé privée et de la requête de signature

Préparez un fichier de configuration temporaire, par exemple /tmp/cert-req.cnf, contenant ces lignes :

[ req ]
default_bits = 2048
default_md  = sha256
prompt = no
distinguished_name = dn

[ dn ]
C = CH
O = Ecole polytechnique federale de Lausanne (EPFL)
CN = serveur.epfl.ch


La ligne « CN = ... » (Common Name) doit contenir le nom du serveur que vous pensez publier dans les URL. Par exemple, pour un serveur qui aura des URL selon le format https://serveur.epfl.ch/document/, il faudra indiquer serveur.epfl.ch comme champ « CN ». Pour un serveur à noms multiples (aliases, virtual hosts), il suffit de remplacer la ligne « CN = ... » par des lignes multiples, comme suit :

0.CN = alias1.epfl.ch
1.CN = alias2.epfl.ch
2.CN = alias3.epfl.ch
etc.


Générer la clé privée et la requête, en utilisant le fichier de configuration /tmp/cert-req.cnf décrit au point précédent :

openssl req -new -nodes -config /tmp/cert-req.cnf -keyout /etc/pki/tls/private/serveur.key -out /tmp/serveur.csr
chown root:root /etc/pki/tls/certs/serveur.key
chmod 400 /etc/pki/tls/private/serveur.key

L’option « -nodes » de openssl req signifie que la clé privée du serveur ne sera pas protégée par mot de passe, ce qui permet au serveur de (re)démarrer sans que vous ayez à entrer de mot de passe. Cette option est conseillée dans la plupart des cas.

Nous proposons de stocker la clé privée serveur.key dans le répertoire /etc/pki/tls/private/ et de changer ses permissions d’accès afin que seul l’utilisateur root puisse la lire. La clé privée est le seul élément lié au certificat qui doit rester parfaitement secret ; elle ne doit jamais être divulguée.

Requête de signature

La requête de signature (fichier /tmp/serveur.csr) générée dans le point précédent doit maintenant être soumise à l’autorité d’enregistrement de l’EPFL via le formulaire https://tremplin.epfl.ch/servCertReq-SCS.cgi. Vous devez disposer du rôle « responsable informatique » pour l’unité dans laquelle la machine est rattachée. L’adresse email que vous renseignerez dans ce formulaire sera utilisée pour toute communication avec l’autorité de certification QuoVadis (réception du certificat, avertissement de son échéance, etc..). Privilégiez une adresse de groupe/service.

Réception du certificat signé

Sous 24 heures habituellement, vous devriez recevoir un courriel de la part de « TrustLink (do-not-reply) noreply@quovadisglobal.com ». Il contient un lien vers votre certificat signé que vous êtes invité à ouvrir.

Configuration d’Apache afin d’utiliser le certificat SSL et d’offrir un accès sécurisé HTTPS

Vérification de la configuration