Tags pour la question fréquent:
Apache SSL Certificats SSL

Cet article a-t-il répondu à votre question?

Score de 0, basé sur 1 votes

Apache - Installer un certificat SSL

Dernière mise à jour: 12/01/2016

Ce manuel vous explique comment installer un certificat qui vient de vous être émis sur le serveur web Apache. Pour en savoir plus comment générer votre demande de certificat, consultez l'article « Comment générer une demande de certificat avec OpenSSL ».

Apache se sert de deux directives pour identifier les certificats SSL, une pour le vôtre, et une pour les certificats intermédiaires et root de l'émetteur.

Selon l'émetteur de certificats que vous avez choisi, vous recevrez ou bien un seul fichier pret à l'emploi contenant tous les certificats, un fichier contenant votre certificat et un autre contenant tous ceux de l'émetteur, ou des fichiers distincts pour chaque certificat. Le plus souvent, ce sera le deuxième scénario, ou votre certificat sera indépendant, et les autres seront groupés, pour être employé directement dans Apache.

Si vous recevez de votre CA des fichier distincts, employer la commande suivante pour les concaténer dans l'ordre inverse. S'il n'y a qu'un certificat intermédiaire, bien entendu n'en ajoutez qu'un.

cat intermediaire_2.crt intermediaire_1.crt CA_root.crt >> /etc/certs/bundle.crt

L'ordre dans laquelle ils sont concaténés est importante:

  • D'abord les certificats intermédiaires, s'il y en - en général un, parfois deux
  • Ensuite le certificat root

Le certificat root n'est pas strictement nécessaire, puisqu'il est déjà connu des navigateurs, mais cela ne peut mal de l'inclure pour obtenir une chaine complète.

Si vous reçu votre certificat et un bundle des certificats de l'émetteur, il vous suffit de les copier dans le dossier où vous gardez vos certificats, par exemple /etc/certs.

Ouvrez le fichier virtual hosts SSL de votre serveur Apache. Suivant votre distribution, il pourrait se trouver à un des endroits suivants:

  • /etc/httpd pour les distros Red Hat, CentOS et Fedora
  • /etc/apache2 pour les distros Debian, Ubuntu et dérivées

Si vous hésitez quant à l'endroit où trouver vos fichiers de configuration, essayez de les trouvez à l'aide de la commande suivante, exécutée dans le dossier /etc ou un des dossiers susmentionnés:

grep -r VirtualHost *

Ajouter un nouveau block VirtualHost au fichier virtual hosts. Notez que dans l'exemple ci-dessous, vous devrez modifier les dossiers pour qu'il pointent vers la racine de votre site web, et les directives SSL pour qu'elles correspondent à l'endroit où vous avez sauvegardé votre clé et vos certificats. Il peut être plus aisé de copier un site web existant et d'en modifier les paramètres.

<Virtualhost :443="">
  DocumentRoot                   /home/www/public_html/www.mondomaine.com/public/
  ServerName                     www.mondomaine.com

  SSLEngine on
  SSLCertificateFile             /etc/certs/www.mondomaine.com.crt
  SSLCertificateKeyFile          /etc/certs/www.mondomaine.com.key
  SSLCertificateChainFile        /etc/certs/bundle.crt
</Virtualhost>

Notez bien que la configuration ci-dessus n'est qu'une configuration minimale d'un site web SSL, et qu'il est important de paramétrer votre serveur Apache pour une meilleure performance et une plus grande sécurité. Kinamo vous conseille de consulter les articles à ce sujet dans la Knowledge Base.

C'est en général une bonne idée de tester votre configuration avant de redémarrer Apache, pour ne pas entraver la bonne marche d'autres sites s'il y a une erreur de paramétrage. Modifier la commande ci-dessous si votre fichier de configuration principal de Apache se trouve à un autre endroit. Cela se fait avec une des commandes suivantes:

httpd -t
apachectl configtest
apache2ctl configtest

Redémarrez Apache avec une des commandes suivantes, selon votre distribution:

/etc/init.d/httpd restart
service httpd restart
apachectl -k restart

Si votre certificat ne s'affiche pas correctement dans le navigateur, contrôlez si la chaine entière de certificats est envoyé par le serveur web avec la commande suivante, en remplaçant www.kinamo.be par votre propre nom de domaine:

openssl s_client -connect www.kinamo.be:443
...
Certificate chain
 0 s:/1.3.6.1.4.1.311.60.2.1.3=BE/businessCategory=Private Organization/serialNumber=0861.077.215/C=BE/ST=Antwerpen/L=antwerpen/O=Kinamo NV/CN=www.kinamo.be
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Extended Validation SSL CA - G2
 1 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Extended Validation SSL CA - G2
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Primary Certification Authority

Vous devriez voir une chaine de certificats commençant par le vôtre et se terminant par le certificat principal de l'émetteur.

Visitez la page de test de Qualys SSL Labs pour vérifier si votre serveur web et votre certificat correspondent au dernières normes de sécurité.