Hébergement à Haute Disponibilité,
Performant et Sécuritaire
Comment configurer HTTPS

Ce petit guide s'adresse aux utilisateurs de nos plans d'hébergement à IP fixe (soit Hôte-Budget, Hôte-Standard, Hôte-Avancé et Hôte-Corporatif), qui désirent rendre leur domaines accessible par le biais d'une URL de type https://. Ceci demande la création d'un certificat SSL. Nos utilisateurs peuvent soit générer et signer leur propre certificat (quelques fureteurs afficheront par conséquent un message d'avertissement), ou se procurer un certificat d'une autorité reconnue, comme Thawte.

Génération de clef privée RSA

Vous devez maintenant générer une clef RSA dans ~/ssl/key. Ce fichier doit demeurer privé.

  $ mkdir -m 0700 ~/ssl
  $ cd ~/ssl
  $ openssl genrsa -out key 1024
Génération du formulaire de demande de signature (CSR)

Cette commande génère un formulaire de demande de signature, ou CSR, qui peut être soumis à un organisme de certification réel, sauf si vous désirez un certificat avec votre propre signature. Le Common Name («CN») doit correspondre exactement à votre nom de domaine principal (vous pouvez sélectionner ce dernier avec l'interface web).

  $ openssl req -new -key key -out csr
  Using configuration from /etc/ssl/openssl.cnf
  You are about to be asked to enter information that will be incorporated
  into your certificate request.
  What you are about to enter is what is called a Distinguished Name or a DN.
  There are quite a few fields but you can leave some blank
  For some fields there will be a default value,
  If you enter '.', the field will be left blank.
  -----
  Country Name (2 letter code) AU: US
  State or Province Name (full name) Some-State: Georgia
  Organization Name (eg, company) Internet Widgits Pty Ltd: Pinhead Enterprizes
  Organizational Unit Name (eg, section) : electro-shock ward
  Common Name (eg, YOUR name) : pinhead.com
  Email Address : zapped@pinhead.com
  Please enter the following 'extra' attributes
  to be sent with your certificate request
  A challenge password : (enter)
  An optional company name :(enter)
Signature du certificat

Vous pouvez soumettre le formulaire de demande de signature à un organisme de certification, tel Thawte. Vous pouvez également signer le certificat vous même avec la commande qui suit -

  $ openssl x509 -req -days 365 -in csr -signkey key -out cert

L'argument -days se réfère à la période de validité. Dans cet exemple, le certificat expirerait dans exactement un an.

Activer le service HTTPS
Une fois les fichiers cert, key (et pp si vous avez une passphrase) placés dans votre répertoire ~/ssl/, vous pouvez activer le service HTTPS avec csoftadm. Si vous utilisez l'interface web, l'option se trouve dans Préférences. Si vous préférez l'interface shell, la commande est conf set ssl.
Résolution de problèmes

L'ajout du nouveau certificat à la configuration de serveur web peut prendre jusqu'à 30 minutes. Si le certificat pose un problème, un message d'erreur apparaîtra dans /var/log/users/votrenom et le fichier cert sera renommé cert.rej.

Avant d'inclure votre hôte virtuel dans le fichier de configuration du httpd SSL, csoftadm fait quelques vérifications au niveau du certificat et des clefs. Vous pouvez faire ces vérifications manuellement à l'aide des commandes:

  # Pour les clefs RSA:
  $ openssl rsa -in key
  
  # Pour les clefs DSA:
  $ openssl dsa -in key
  
  # Utilisez -passin pour les clefs avec passphrases:
  $ openssl dsa -in key -passin file:pp
  
  # Pour lire l'empreinte d'un certificat X.509:
  $ openssl x509 -in cert -fingerprint

La commande suivante permet de lire le CN (Common Name) d'un certificat. Ce champs doit correspondre exactement à votre nom de domaine principal. Le cas contraire est la cause d'échec la plus fréquente.

  # Pour lire l'objet d'un certificat X.509:
  $ openssl x509 -in cert -subject
Quelques liens utiles
  • ssl(8) - Utilisation de libssl et libcrypto (en anglais)
  • openssl(1) - Outil ligne de commande (en anglais)
  • mod_ssl - L'interface entre Apache et OpenSSL (en anglais)
  • OpenSSL - Outils SSL v2/v3 et TLS v1 (en anglais)
  • Ten Risks of PKI - What You're Not Being Told About Public Key Infrastructure (en anglais)

  Contre les brevets logiciels!