Installer un certificat SSL COMODO sur HaProxy

Les certificats COMODO fournis par NameCheap ont pour avantage d’être à bas coût (9€ la première année, 30€ les années suivantes), mais ne sont pas trivials a installer, pour une raison toute simple : COMODO n’est pas un organisme reconnu de base par les navigateurs, surtout sur mobile.

Installer le certificat de manière traditionnelle aura donc pour effet d’afficher un certificat invalide sur certains device.

Comme je galère à chaque fois pour retrouver la bonne méthode pour implémenter le certificat, je la publie ici, d’abord pour moi, puis pour toi, visiteur.

Pré-requis :

  • Un serveur sous linux (pour ma part, c’est ubuntu)
  • Acheter un certificat type PositiveSSL 3 domains chez NameCheap
  • Haproxy installé
  • OpenSSL (sudo apt-get install openssl)
  1. Commencer par générer le certificat chez NameCheap
    1. Pour ça, il vous faut une clef CSR a générer sur le serveur (qui idéalement hébergera le certificat)
      1. Aller dans le dossier /etc/ssl/
      2. Générer la clef du serveur :
        sudo openssl genrsa -out server.key 2048
      3. Lancer la commande suivante :
        sudo openssl req -new -key server.key -out server.csr
        Vous allez devoir répondre à plusieurs questions, attention a bien mettre votre domaine principal dans « Common Name », c’est celui qui sera utilisé par NameCheap pour générer le certificat
      4. prendre le contenu du fichier server.csr et le donner a namecheap lors de la génération du certificat
    2. Une fois le certificat validé et reçu par email, vous avez un fichier ZIP qui contient  normalement 4 fichiers :
      1682XXXX.crt
      AddTrustExternalCARoot.crt
      COMODORSAAddTrustCA.crt
      COMODORSADomainValidationSecureServerCA.crt

      1. Pour générer un certificat fonctionnel avec haproxy, il faut concaténer ces différents fichiers en un seul que nous allons nommer « certificate.ca-bundle ». (Attention, l’ordre est très important !)
        cat 1682XXXX.crt AddTrustExternalCARoot.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt server.key > certificate.ca-bundle
      2. Maintenant que nous avons ce fichier, nous allons le placer dans le dossier de configuration haproxy :
        sudo cp /etc/ssl/certificate.ca-bundle /ets/haproxy/certificate.ca-bundle
    3. Nous allons ensuite modifier le configuration haproxy
      1. Ajouter les dossiers par défaut dans la section global
        ca-base /etc/haproxy
        crt-base /etc/haproxy
      2. Il faut ensuite préciser les ciphers a utiliser :
        ssl-default-bind-options no-sslv3
        ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSSssl-default-server-options no-sslv3
        ssl-default-server-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
        tune.ssl.default-dh-param 2048
      3. Ne pas oublier d’ajouter un frontend HTTPS (je ne donne pas plus d’infos sur la conf haproxy, l’objectif ici est uniquement de traiter du certificat SSL)
        frontend www-https
        bind 0.0.0.0:443 ssl crt /etc/haproxy/certificate.ca-bundle
        reqadd X-Forwarded-Proto:\ https
        default_backend www-backend
    4. Reloader la config
      sudo service haproxy reload
    5. Si tout va bien, vous devriez avoir un joli https vert dans votre barre de navigation :
      https

J’espère que ce mini tuto pourra aider !

Vous aimerez aussi...