Table des matières

Configurer Apache pour utiliser votre certificat SSL Gandi

Si vous quittez Gandi AI pour installer un certificat SSL pour un de vos sites web, des prérequis sont à effectuer, je vous invite à consulter la documentation suivante pour ce faire avant de continuer ce tutoriel.

Installation d'Apache 2

Dans un premier temps, vous devez installer l'application du serveur.

aptitude install apache2

Vous devrez ensuite activer le module ssl (nous redémarrerons Apache plus tard) :

a2enmod ssl

Puis enfin faire en sorte que Apache écoute sur le port HTTPS. Dans le fichier /etc/apache2/ports.conf, ajoutez (ou complétez) :

<IfModule mod_ssl.c>
    Listen 443
    NameVirtualHost VOTRE_ADRESSE_IP:443
</IfModule>

Obtenir le certificat intermédiaire Gandi

Il est nécessaire, afin que votre certificat soit reconnu comme émis par une autorité de certification approuvée, de récupérer les certificats intermédiaires fournis par Gandi : Obtenir le certificat intermédiaire Gandi

Activer un domaine sur Apache SSL

L'installation d'un Certificat demande un accès aux droits root. Vous ne pourrez donc pas installer celui-ci sur un serveur GandiAI sans relâcher les droits.

Installez vos clefs/certificats et éventuellement certificats intermédiaires (pour former une chaine) dans, par exemple, /etc/ssl:

cp cert-domain.tld.crt /etc/ssl/certs/domain.tld.crt
cp monserveur.key /etc/ssl/private/domain.tld.key
cp GandiXXXSSLCA.pem /etc/ssl/certs/GandiXXXSSLCA.pem

N'oubliez pas de remplacer toutes les occurrences de domain.tld par votre propre domaine. Le nom du fichier représenté par GandiXXXSSLCA.pem varie selon le type de certificat, pensez-donc à utiliser le correspondant au fichier téléchargé à l'étape précédente.

Si vous cherchez votre fichier.key, ce fichier a été généré par vous-même au tout début en même temps que votre CSR (fichier.csr) et se trouve à côté. (monDomaine.csr monDomaine.key)

Effectuer le rehash de la structure ssl :

c_rehash /etc/ssl/certs 

Pour ajouter un domaine sur votre apache sécurisé, créez un site dédié:

vi /etc/apache2/sites-available/000-domain.tld-ssl.conf

et ajoutez le virtualhost de votre domaine de la manière suivante :

NameVirtualHost *:443
  <VirtualHost VOTRE_ADRESSE_IP:443>

        ServerName www.domain.tld
        ServerAlias domain.tld
        DocumentRoot /var/www/www.domain.tld/
        CustomLog /var/log/apache2/secure_access.log combined

        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/domain.tld.crt
        SSLCertificateKeyFile /etc/ssl/private/domain.tld.key
        SSLCertificateChainFile /etc/ssl/certs/GandiXXXSSLCA.pem
        SSLVerifyClient None

  </VirtualHost>

Attention pour GnuTls faites comme ceci :

Ouvrez domain.tld.crt et GandiXXXSSLCA.pem, copiez tout le contenu du fichier GandiXXXSSLCA.pem après —–END CERTIFICATE—– dans le fichier domain.tld.crt

Sauvegardez le fichier domain.tld.crt et configurez votre vhost comme ceci :

  <VirtualHost VOTRE_ADRESSE_IP:443>
        ServerName www.domain.tld
        ServerAlias domain.tld
        DocumentRoot /var/www/www.domain.tld/
        CustomLog /var/log/apache2/secure_access.log combined
    
        GnuTLSEnable on
        GnuTLSPriorities NORMAL
        GnuTLSCertificateFile /etc/ssl/certs/domain.tld.crt
        GnuTLSKeyFile /etc/ssl/private/domain.tld.key
  </VirtualHost>

puis activez le site SSL et redémarrez apache:

a2ensite 000-domain.tld-ssl.conf
/etc/init.d/apache2 restart

Si votre serveur contient un firewall, n'oubliez pas d'ouvrir le port HTTPS de celui-ci (port 443).

Vérifier votre chaine SSL

En utilisant la commande openssl suivante avec votre adresse IP (ou votre hostname) et le port associé du service (443 dans le cas d'apache2 en SSL):

openssl s_client -connect ip.ip.ip.ip:port

Ou en utilisant le site http://www.digicert.com/help/ pour avoir une visualisation plus graphique.