SUPPORT

Un problème de certificat ? Besoin d'être dépanné rapidement ? Nos ingénieurs répondent à vos questions.

0 897 690 444 Service 0,80 €/min +prix appel
Menu
picture of tbs certificates
picture of tbs certificates
Les produits
Notre gamme
Partenaires
Support
Numéro vert
Focus


Installer un certificat SSL sur Apache 2.4.8+

Vous avez reçu votre certificat par email, avec éventuellement un ou plusieurs certificats intermédiaires, et un certificat racine. Gardez cet email sous la main.

Sous linux, pour vérifier le numéro de version de votre serveur Apache vous pouvez executer la commande suivante :
#apachectl -version
Server version: Apache/2.2.26 (Unix)
Server built:   Dec 10 2013 22:09:38

#apache2ctl -version
Server version: Apache/2.4.10 (Debian)
Server built:   Oct  9 2014 22:21:52

Pour une version de Apache antérieur à 2.4.8, voir notre documentation ici

1- Récupérez le ou les certificats sur votre serveur

Retournez là ou vous avez généré la clef privée (et votre fichier CSR), par exemple:
cd /etc/apache2/SSL2015
ou
cd /etc/apache/conf/SSL2015
ou
cd /etc/httpd/conf/SSL2015
Ou encore dans un environnement Windows (EasyPHP, Wamp, ...) :
C:\Program Files\Apache Software Foundation\Apache X.X\conf\SSL2015
C:\Program Files\Apache Software Foundation\EasyPHP\SSL2015
Téléchargez dans ce dossier sur votre serveur le fichier indiqué dans l'email de livraison :
A partir de la page statut de votre certificat dans votre espace client chez TBS CERTIFICATS,
cliquez sur le bouton "Voir le certificat" (ou "Voir le dernier certificat")
puis "Voir le certificat au format X509 avec chaine".
Vous téléchargerez ainsi un fichier pem-xxx-yyy.pem,
Il contient votre certificat SSL ainsi que la chaîne de certification au format PEM.

2- Configurez Apache : /etc/apache2/sites-enabled/default-ssl.conf

Dans une installation standard sous linux, le fichier de configuration avancé du SSL est situé
/etc/apache2/mods-enabled/ssl.conf
mais ce n'est pas dans ce fichier que vous activez le SSL pour un site.
Il vous faudra éditer, par exemple, le fichier
/etc/apache2/sites-enabled/default-ssl.conf
L'installation d'un certificat sur un serveur Apache peut se résumer à définir 2 variables dans le fichier de configuration d'Apache :
  • SSLCertificateKeyFile chemin vers le fichier clef-privée.key utilisé lors de la génération du CSR initiale
  • SSLCertificateFile chemin vers le fichier PEM contenant le certificat d'entité finale et les certificats intermédiares
Exemple :
<IfModule mod_ssl.c>
       <VirtualHost _default_:443>
        ...
       SSLEngine on
       ...
       SSLCertificateFile  /etc/apache2/SSL2015/pem-xxx-yyy.pem
       SSLCertificateKeyFile /etc/apache2/SSL2015/www.mondomaine.fr.rsa.key
       ...
       SSLCipherSuite !EDH:!RC4:!ADH:!DSS:HIGH:+AES128:+AES256-SHA256:+AES128-SHA256:+SHA:!3DES:!NULL:!aNULL:!eNULL
       SSLProtocol all -SSLv2 -SSLv3
       SSLHonorCipherOrder on
       SSLOpenSSLConfCmd ECDHParameters secp384r1 #selection de courbe ECDH 
       ...
       </VirtualHost>
</IfModule>


Ou encore dans un environnement Windows (EasyPHP, Wamp, ...) :
C:/Program Files/Apache Software Foundation/Apache X.X/conf/extra/httpd-ssl.conf
C:/Program Files/Apache Software Foundation/EasyPHP/
N.B.: Attention, certaines configurations d'apache sur windows peuvent poser des erreurs si le(s) chemin(s) d'accès :
  • n'est pas complet ou n'utilise pas les anti-slash pour définir l'arborescence :
    SSLCertificateFile  C:\Program Files\Apache Software Foundation\Apache X.X\conf\SSL2015\pem-xxx-yyy.pem
    SSLCertificateKeyFile C:\Program Files\Apache Software Foundation\Apache X.X\conf\SSL2015\www.mondomaine.fr.rsa.key
  • possède des caractères spéciaux : espace, parenthèse (), crochets [], accents éàèêîï, ...
  • le chemin d'accès est trop long ( > 200 caractères)
  • les fichiers de clef privée, certificats, et chaine de certification ne sont pas accessible en lecture (droits windows) pour l'utilisateur / session qui lance le serveur Apache / httpd.

3- Relancez Apache et testez

Vérifiez qu'il n'y a pas d'erreur de syntaxe :
#apachectl configtest
Syntax OK
Une fois la configuration en place, relancez le serveur Apache.
#service httpd restart
ou
#/etc/init.d/apache restart
ou
#systemctl restart httpd
ou
#systemctl restart apache2
Vérifiez le log (en cas d'erreur de syntaxe) et testez alors l'accès à votre site sécurisé avec IE et Firefox.

N.B. : Si le certificat installé ne correspond pas à la clef privée, alors le serveur Apache ne pourra démarrer et même le service HTTP est alors en panne. Comment vérifier si le certificat correspond à la clef ?

Sur le plates-formes windows (Easy Php, WAMP, ...)

  • Vous devez avoir dans la barre des taches un menu "d'administration / gestion" de serveur Apache pour "éteindre" et "allumer" le serveur Apache.
  • Pensez à vérifier dans les règles de sécurité (Pare-feu / Firewall) que le port HTTPS (443) est bien autorisé / ouvert.
  • En cas d'erreurs diverses, le serveur risque de ne plus démarrer. Il faut alors consulter les logs d'erreur: les messages d'erreur peuvent aussi être inscrits dans "l'observateur d'évènements" de windows.

Recommandations de sécurité

Activer l'OCSP Stappling

Nous vous recommandons d'activer l'OCSP Stappling afin de garantir à vos utilisateur la non-révocation de votre certificat plus efficacement et rapidement qu'avec les simples mécanismes intégrés des navigateurs.

Activer le support HSTS

Pour protéger vos utilisateurs d'éventuelles attaques de type Man in the Middle, et garantir la sécurité de votre site, nous vous conseillons d'activer HSTS.

Générer des groupes dh forts

Nous vous recommandons de générer des groupes dh uniques à votre machine afin d'accroitre sa sécurité. Pour cela, lancez la commande suivante et placez son résultat dans un dossier accessible à votre serveur web (par exemple, le dossier SSL2015)

openssl dhparam -out dhparams.pem 2048

Si vous disposez d'openssl 1.0.2+

Éditez votre configuration avec la ligne suivante :

SSLOpenSSLConfCmd DHParameters "/etc/apache2/SSL2015/dhparams.pem"

Si vous disposez d'une version d'openssl inférieure à 1.0.2.

Éditez votre fichier de certificat (pem-xxx-yyy.pem) pour y ajouter à la fin, le contenu du fichier dhparams.pem que vous venez de générer.

Réglage fin du niveau de chiffrement

Dans une installation standard sous linux, le fichier de configuration avancé du SSL est situé
/etc/apache2/mods-enabled/ssl.conf

Choisissez une courbe elliptique forte pour ECDH (openssl 1.0.2+)

Nous vous recommandons de choisir une courbe elliptique forte pour l'échange de clé ECDH:
SSLOpenSSLConfCmd ECDHParameters secp384r1

4 - Vérifiez l'installation de votre certificat grâce à CO-PiBot :

Sur votre page statut du certificat, dans votre espace client chez TBS CERTIFICATS, Vous y trouverez un bouton "Vérifier votre certificat" pour tester la bonne installation de votre certificat.


Apache et le SNI (TLS Server Name Indication)

Cela consiste à installer plusieurs certificats SSL sur un même serveur utilisant un seul numéro IP. La quasi-totalité des navigateurs est compatible avec le SNI (consulter la liste).
  • Vérifier que le module SSL installé sur votre serveur Apache prend bien en charge le SNI (apache/mod_ssl)
  • Dans la configuration SSL, interdire l’utilisation de la version 2 du protocole SSL : SSLProtocol all -SSLv2 -SSLv3
  • Pour chaque VirtualHost indiquez la clef privée, le certificat et la chaine de certification à utiliser :
    <NameVirtualHost *:443>
      
    <VirtualHost *:443>
      ServerName www.monsite.fr
      DocumentRoot /var/www/www.monsite.fr
      ...
      SSLEngine on
      SSLCertificateFile chemin/certificat-xxxx.pem
      SSLCertificateKeyFile chemin/clefprivee-xxxx.key
    </Virtual Host>
      
    <VirtualHost *:443>
      ServerName www.mywebsite.com
      DocumentRoot /var/www/mywebsite.com
      ...
      SSLEngine on
      SSLProtocol all -SSLv2 -SSLv3
      SSLCertificateFile chemin/certificat-yyyy.pem
      SSLCertificateKeyFile chemin/clefprivee-yyyy.key
    </Virtual Host>
      
    ...
    

Liens externes sur le SNI


Liens utiles

Documentation interne :

Documentation externe