HTTPS gratuit sur son site/blog sur un serveur dédié Linux

Aujourd’hui on met en place du HTTPS gratuit sur nôtre site !

HTTPS c’est quoi? Wiki => L’HyperText Transfer Protocol Secure littéralement « protocole de transfert hypertexte sécurisé »  est la combinaison du HTTP avec une couche de chiffrement.

Permet de:

  • vérifier l’identité du site web auquel on accede
  • garantir la confidentialité. Les données en transit entre le client et le serveur sont chiffrées.
  • garantir l’intégrité (pas d’altération entre l’émission du message d’un coté et la réception de l’autre)
  • authentifier les utilisateurs. (On n’utilisera pas cette fonction dans ce tuto)

Step one – Insription sur le site startSLL.com

On se rend à l’adresse suivante: https://www.startssl.com/?lang=fr

Puis dans la rubrique « Panneau de configuration » on clique sur l’image « Sign up ».

Je ne vais pas détailler la partie inscription, celle-ci est très bien assitée (mais par contre elle est super reloue. Je vous revois pas avant 20 minutes! A toute!!).

Re! Alors cette inscription? Vous avez donc obtenu de la part du site un certificat d’authentification. En gros, plutôt que de s’authentifier sur le site avec un traditionnel login/mdp on va utiliser notre certificat.

Pour l’ajouter sur chrome, rendez vous dans les paramètres avancés, puis dans la rubrique « HTTPS/SSL » cliquez sur « Gérer les certificats » et enfin importez le certificat généré précédemment. Il faudra bien sur le sauvegarder dans une clé USB placée dans un coffre fort que vous enterrerais dans vôtre jardin.

Une fois ajoutez vous pouvez retourner sur le site startSSL et rafraîchir la page. Normalement il vous affiche une page comme ceci pour réclamer vôtre authentification.

demande_certif_ssl

On a désormais accès à notre panneau de configuration.

panneau_config_startssl

 

Step two – Faire valider son domaine

Un certificat est émis par une autorité tierce (startSSL dans nôtre cas), réputée fiable et faisant généralement partie de la liste blanche des navigateurs internet.

Quand l’autorité tierce n’est pas reconnue par le navigateur vous avez le droit à cette page

https_certificat

Quand il est reconnu vous pouvez voir les informations sur son identité dans vôtre barre d’url.

certificat google

Nôtre autorité tierce à besoin de savoir que nous sommes bien le propriétaire du domaine pour lequel on souhaite un certificat SSL. Pour effectuer cette validation on se rend dans l’onglet « Validations wizzard » et on choisi le type « Domain Name Validation ».

La page suivante nous demande de saisir nôtre nom de domaine ainsi que son extension.

selection_domaine

La page suivante nous demande à quel adresse envoyer le mail de vérification et la je dis stoopppp! Ne bougez plus, ne respirez plus ! Il faut régler une redirection de l’une des adresses proposées vers une boite mail. Bas oui sinon le mail n’arrivera nul part.

Dans mon cas c’est chez OVH que j’ai souscris mon nom de domaine. Il me propose, dans ma console de gestion, de gérer les redirections. J’ai donc créé une redirection pour l’adresse postmaster@mespotesgeek.fr.

redirection_mail_ovh

 

Je ne sais pas à quoi ressemble la console de gestion des autres hébergeurs. Si vous n’êtes pas chez OVH il vous faudra vous débrouiller pour effectuer cette redirection.

Bref, ceci fait on reprend la validation sur startSSL.com. Vous pouvez de nouveau bouger et respirer au faite. On sélectionne l’adresse que l’on a redirigé précédemment on suit les instructions. Une fois encore je ne détail pas plus. La procédure est quasi la même que pour l’inscription. Vous allez recevoir un mail tout ça tout ça.

Step three – Création d’un certificat CSR

Le CSR est un message que le client envoie à l’autorité de certification pour demander un certificat électronique.

 On ouvre une console sur le serveur pour taper les commandes suivantes

  • Création d’une clé privé pour le serveur

J’espère que vous n’avez pas déjà enterré le coffre à sauvegarde dans votre jardin car la clé générée est importante et il faut la sauver immédiatement. Si vous travaillez depuis un Windows je vous conseil l’outil WinSCP pour transférer des fichiers entre votre poste et votre serveur. L’interface se compose de deux fenêtres. Celle de gauche vous montre vos fichiers locaux et celle de droite le serveur distant.

Pour la sécuriser un minimum on va rende lisible que par root

  • Création du CSR à partir de la clé

Plusieurs question sont alors posées pour la génération du CSR :

  • Code de deux lettres du pays : FR pour la France
  • Etat ou la Province : mettre une région Française
  • La ville
  • Le nom de l’organisation
  • Le nom de la personne responsable
  • Une adresse Email

Une fois créé, on récupère le CRS pour le donner à startSSL.com afin qu’il le signe de leur coté. Vous pouvez également ajouter ce fichier CRS au coffre et ré-enterrer ce dernier dans votre jardin.

Step four – Envoi du CRS et génération du certificat signé

On se rend sur “Certificates wizzard”. On « skip » la création du csr car on l’a fait.

Sur la page suivante on rentre tout le contenu du csr dans le formulaire du site. Le CRS ressemble à ça:

StartSSL propose de saisir un sous domaine. Pour la version gratuite il n’y en a qu’un possible. Vous pouvez choisir par exemple forum.mondomaine.com ou un autre nom quelconque en prévision d’un service futur.

Le site nous génère alors un contenu qu’il faut sauver dans un fichier nommé votre_nom_de_domaine.crt et l’envoyer sur le serveur dans le dossier /etc/ssl/domain.com.crt. Ce certificat est lui aussi important. Vous aviez enstéré le coffre?

 Step five – Modification de la configuration d’apache

Dans un premier temps on a besoin des certificat root de startSLL. Pour les télécharger directement sur le serveur on tape les commandes suivantes

Le serveur web à besoin d’un fichier unique en extention « .pem » contenant la clé privé et le certificat. On va donc concaténer les deux à l’aide des commandes suivantes

  •  Modification du virtualHost defaut-ssl. On édite le fichier /etc/apache2/site-enabled/default-ssl. On ajoute ce qui suit

  • Activation du virtualhost

  • Activation du mod ssl de apache

  • Le protocole HTTPS fonctionne sur le port 443. Apache doit écouter sur celui-ci. On ajoute la ligne suivante au fichier /etc/apache2/ports.conf

  • Restart apache pour prendre en compte les modifications 

Et voila vôtre site est à présent disponible en HTTPS ! Il ne reste plus qu’a se rendre sur l’url de votre site en https et vérifier que notre certificat est bien actif. Le navigateur ne devrait pas demander l’habituelle exception pour un certificat auto signé car l’authorité startSLL est sur la liste blanche des navigateurs.

Bonus – Forcer les clients à utiliser la page HTTPS

On modifie le vhost par défaut du port 80 que l’on trouve dans le fichier /etc/apache2/site-enabled/default et on ajoute la ligne de redirection

 

 

 

 

 

 

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *