Comment certifier rapidement son site Web HTTPS

Un site sécurisé passe toujours par le protocole HTTPS. Le HTTP suivi d'un 'S'. Ce 'S' qui pour nombre de personne à peu de signification, si ce n'est ce que tout le monde en dise : "avec HTTPS tout est sécurisé".

Démistifions ce protocole, c'est tout simplement un encryptage des informations échangés entre un client Web (ou plus communément appelé Navigateur) et le serveur Web. L'encryptage est tout simplement rendre incompréhensible une chaîne de caractères. Pour cela on utilise des transformations mathématiques qui fait qu'il est quasiment impossible de retrouver le contenu original si on n'a pas la clé qui permet de retouver son texte. Cette clé est échangé entre nos deux systèmes lors de l'ouverture du dialogue, avant de récupérer le contenu demandé crypté.

Mais comment faire pour que son site en HTTP puisse devenir un magnifique site HTTPS ? Et bien voyons cela.... Tout se résume par le fait de connaître les bonnes commandes pour configurer votre serveur Web. Il existe plusieurs outils d'encryptage pour faire du HTTPS. Le plus connu et le moins cher, puisque gratuit ou sous licence GNU, c'est OpenSSL.

Personnellement, c'est celui que j'utilise, et il est très bien. De plus il est intégré et fourni complètement avec le meilleur serveur Web de notre époque : Apache.

Alors il est vrai qu'un bon nombre de commande se fait en ligne de commande, mais en quelques lignes exécutées c'est vite fait.

Pour résumer voici ce qu'il faut faire pour rendre votre site HTTP sécuriré:

Se positionner dans le répertoire où se trouve installer OpenSSL, et lancer la commande suivante:

$ openssl genrsa -des3 -out server.key 1024

Il vous sera demandé une phrase comme mot de passe d'encryption.

Comme la commande précédente, il faudra renseigner la phrase d'encryptage que vous avez précédemment renseignée, suite au lancement de la commande suivante:

$ openssl req -new -key server.key -out server.csr

Un certain nombre de question vous sera posé pour complété la demande de certificat. Cela comprend les informations suivantes: la langue (C), la région (ST), la localité/ville (L), l'organisation (O), la personne en charge (OU), le site web à qui est destiné le certificat (CN), et l'adresse email de contact (E). Le paramètre CN est important, il doit être identique à l'URL que vous allez taper dans votre navigateur web : celui pour lequel vous demander un certificat.

Vous envoyer alors les deux fichiers au service tier de confiance qui vous renverra la clé CRT, sous forme de fichier server.crt, certificat qu'il faudra installé sur votre service Web.

Il suffit de renseigner les quelques lignes suivante dans le fichier de conf "httpd.conf":

       SSLCertificateFile    /path/to/this/server.crt
SSLCertificateKeyFile /path/to/this/server.key

Le fichier "server.csr" n'est plus utile après cette étape. C'est fini, il faut redémarrer le service web, et "en route ma poule"....


Bon d'accord, je vous entends me dire: "T'es gentil Bertrand, mais le service tier est payant!!!".

C'est vrai, mais j'ai là encore une solution pour vous: générer son propre certificat. C'est simple, pas cher, ca fait du HTTPS, mais ce n'est pas un tier de confiance. C'est sufisant pour votre propre site web, mais pour un site commercial, il faudra passer par un tier, c'est quasi obligatoire.

Voici le truc, toujours grace à OpenSSL qui vous permettra d'être vous même votre tier de confiance. La génération du fameux fichier server.crt est assez simple. Toujours dans le répertoire d'installation d'OpenSSL, exécuter la commande suivante après avoir généré votre clé:
$ openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt
Il vous faut encore renseigner les informations relatifs à celui qui fourni le certificat (les mêmes que lors de la création du certificat de demande d'enregistrement). Et voilà, c'est fait; y'a plus qu'a renseigner votre configuration web.

Toutes ces informations, vous pouvez les trouver facilement, et avec un maximum d''explication sur les site web de Apache Groupe.

{mos_sb_discuss:6}