La Fibre

Télécom => Réseau => reseau Protocoles réseaux sécurisés (https) => Discussion démarrée par: vivien le 17 juillet 2014 à 13:58:42

Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 13:58:42
Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Ou comment mettre un certificat SSL gratuit pour proposer un site en https
(https://lafibre.info/images/logo/licence_cc_by-sa.svg)

Le seul fournisseur de certificat reconnu par tous les navigateurs modernes est StartSSL de StartCom : https://startssl.com/?lang=fr (https://startssl.com/?lang=fr)
Pourquoi il fait des certificats gratuits ? StartCom est l'éditeur d'une distribution linux (StartCom Linux, basé sur RedHat) et souhaite rendre plus accessible les certificats SSL.



Étape 1/14 : Création d'un compte StartSSL

Il faut se rendre sur la page https://www.startssl.com/?app=11&action=true (https://www.startssl.com/?app=11&action=true) et cliquer sur Sign-up :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_01.png)

On se crée un compte sur StartSSL, il faut donc rentrer son nom / prénom / adresse :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_02.png)

Un courriel avec un code est envoyé sur l'adresse courriel, il faut recopier ce code sur l'interface pour valider le compte :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_03.png)

La validation se fait automatiquement ou manuellement en quelques heures, en fonction du risque de fraude :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_04.png)

Un courriel vous souhaite la bienvenue une fois la validation de votre compte effectuée :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_05.png)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 13:59:16
Étape 2/14 : création d'un certificat client pour le navigateur web, afin de sécuriser les transferts avec StartSSL
Ce certificat est appelé certificat personnel par Firefox.

On va sur l'adresse reçue dans le courriel et on rentre le code indiqué dans ce même courriel :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_06.png)

On va générer une clé pour Firefox de "Haut Niveau". Elle est complètement indépendante de la clé qui sera utilisée pour le site Internet.
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_07.png)

On valide l'installation sur Firefox :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_08.png)

Firefox nous informe qu'un certificat personnel a été installé :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_09.png)

L'inscription à StartSSL est terminée !
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_10.png)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 13:59:30
Étape 3/14 : Sauvegarde du certificat client du navigateur web xxxxx.P12 installé dans Firefox
Bien entendu, il est possible d'utiliser un autre navigateur, par contre la méthode pour faire la sauvegarde diffère un peu.

Cette sauvegarde est nécessaire pour pouvoir renouveler le certificat dans 11 mois et demi.

Dans le menu à droite de Firefox, cliquez sur préférence, puis dans l'onglet Avancé, tout à droite et enfin dans le sous onglet certificat, cliquez sur Afficher les certificats :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_12.png)

Il est possible que vous ayez d'autres certificats => Sélectionnez le certificat StartCom et cliquez sur Sauvegarder :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_13.png)

Firefox vous demande un mot de passe qui va protéger votre certificat. Il sera demandé lors de la restauration du certificat.
Choisissez le nom que vous souhaitez pour le certificat.
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_14.png)

Firefox vous confirme la sauvegarde :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_15.png)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 13:59:44
Étape 4/14 : vérification que vous êtes le propriétaire du nom de domaine qui và avoir le certificat SSL

Maintenant que l'inscription à StartSSL est terminée, on va de nouveau sur le site https://startssl.com/?lang=fr mais on clique sur Authenticate :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_01.png)

Si le certificat personnel est bien installé dans Firefox, on arrive dans le Control Panel qui liste les prochaines étapes :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_11.png)

On clique sur Validations Wizard puis on sélectionne Domain Name Validaiton dans la liste déroulante :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_16.png)

On rentre le nom de domaine qui và avoir un certificat :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_17.png)

StartSSL interroge le Whois pour récupérer des adresses courriel associées à ce nom de domaine et des adresses courriel génériques tel que postmaster.
Sélectionnez l'adresse courriel à laquelle vous avez accès qui sera l'adresse courriel de validation du domaine.
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_18.png)

Un nouveau courriel vous est envoyé avec un code de validation qu'il faut recopier :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_19.png)

Le nom de domaine est validé pour 30 jours, ce qui signifie que vous avez 30 jours pour faire les étapes suivantes, mais votre certificat sera bien valable 1 an.
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_20.png)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 14:00:00
Étape 5/14 : Création du fichier xxxxx.KEY sur le serveur

Connectez vous au serveur web via SSH. Pas besoin des droits root pour les 11 premières étapes.

Je conseille de créer un dossier où tous les fichiers vont être regroupés temporairement.
mkdir ssl
cd ssl

On va rester dans ce dossier jusqu'à la 12ème étape.

Il faut générer le fichier .key avec OpenSSL :
openssl genrsa -des3 -out testdebit_avec_passphrase.key 4096
Remplacez testdebit par votre nom de domaine.

Le mot de passe (passphrase) demandé doit contenir uniquement des chiffres et des lettres. Sa taille minimum est de 10 caractères et sa taille maximum est de 32 caractères sans quoi StartSSL va le refuser.

(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_21.png)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 14:00:13
Étape 6/14 : Création du fichier xxxxx.CSR (Certificate Request) sur le serveur web

Toujours en SSH, voici la ligne de commande à utiliser :
openssl req -new -key testdebit_avec_passphrase.key -out testdebit.csr
Remplacez testdebit par votre nom de domaine.

Répondez aux questions proposées :

Ne pas remplir les éléments suivants (challenge password / company name) qui sont optionnels.

(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_22.png)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 14:00:37
Étape 7/14 : Générer et faire signer le fameux certificat SSL xxxxx.CRT

On est reparti sur le site web de StartSSL, dans l'onglet Certificates Wizard cette fois-ci.

Sélectionner Web Server SSL/TLS Certificate dans la liste déroulante :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_23.png)

Important : il faut cliquez sur Skip car le fichier .CSR a été créée sur le serveur Web :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_24.png)

Start SSL nous demande de copier / coller l'intégralité du fichier .CSR généré à l'étape précédente sur le serveur.

Pour éditer le fichier sur le serveur en SSH, vous pouvez utiliser l’éditeur nano : nano testdebit.csr
Remplacez testdebit par votre nom de domaine.

On colle le contenu dans l'interface StartSSL en incluant la première et la dernière ligne comme dans l’exemple ci-dessous (j'ai réduit, le .CSR fait plus que 6 lignes)
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_25.png)

Si vous avez ce message, c'est que votre CSR est accepté :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_26.png)

On confirme le domaine qu'il faut valider :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_27.png)

Il est recommandé de valider www en plus de la racine du certificat :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_28.png)

Ce message vous prévient qu'une validation de la cohérence des informations rentrées est nécessaire.
Généralement le certificat sera créé en moins de 2h.
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_29.png)

Vous recevez un courriel pour vous prévenir de la création :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_30.png)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 14:00:56
Étape 8/14 : Récupérer le certificat SSL xxxxx.CRT

On va sur le site StartSSL, dans l'onglet Tool Box et on clique sur Retrieve Certificate à gauche :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_31.png)

Le certificat apparaît sur le site StartSSL :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_32.png)

Sélectionnez l'ensemble du certificat et faire un bouton droit Copier.

Sur le serveur web à laquelle vous êtes toujours connecté en SSH, on va créer testdebit.crt :
nano testdebit.crt
Remplacez testdebit par votre nom de domaine.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 14:01:14
Étape 9/14 : Suppression de la passphrase du fichier xxxxx.KEY

Pour que Apache 2.4 puisse démarrer automatiquement après un reboot du serveur, il est nécessaire que le fichier .KEY ne contienne pas de passphrase.

On va donc l'enlever avec la commande OpenSSL suivante :
openssl rsa -in testdebit_avec_passphrase.key -out testdebit.key
Remplacez testdebit par votre nom de domaine.


(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_33.png)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 14:01:30
Étape 10/14 : Récupérer les certificats xxxxx.PEM de StartCom

Les 2 fichiers qu'il faut récupérer sont :
- StartCom Root CA (PEM encoded) => ca.pem
- Class 1 Intermediate Server CA => sub.class1.server.ca.pem

Ces fichiers sont les mêmes pour tous les domaines de ce type signés par StartCom.

On va sur le site StartSSL, dans l'onglet Tool Box et on clique sur StartCom CA Certificates :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_34.png)

On récupère le StartCom Root CA (PEM encoded) => ca.pem
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_35.png)

On récupère le Class 1 Intermediate Server CA => sub.class1.server.ca.pem
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_36.png)

Il faut ensuite transférer ces deux fichiers sur le serveur, dans notre dossier temporaire.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 14:01:47
Étape 11/14 : Récapitulatif des 7 fichiers du dossier temporaire

Si vous avez suivi toutes les étapes, vous devez avoir 7 fichiers dans votre dossier temporaire.

Ce sont ces 7 fichiers que je vous conseille de bien sauvegarder.
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_37.png)

Le certificat personnel de Firefox ne sera pas utilisé avant 11 mois, donc vous pouvez le supprimer pour empêcher à un visiteur d'avoir accès à votre compte StartSSL (aucun mot de passe n'est demandé, le certificat est suffisant).

Dans le menu à droite de Firefox, cliquez sur préférence, puis dans l'onglet Avancé, tout à droite et enfin dans le sous onglet certificat, cliquez sur Afficher les certificats :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_12.png)

Sélectionner le certificat et cliquez sur Supprimer :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_38.png)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 14:02:07
Étape 12/14 : Configuration de Apache 2.4

sudo a2enmod ssl : Active le module SSL pour Apache 2.4
sudo a2enmod headers : Active le module headers pour Apache 2.4, nécessaire pour activer le HSTS (HTTP Strict Transport Security (https://fr.wikipedia.org/wiki/HTTP_Strict_Transport_Security)) dans Apache
sudo service apache2 restart : redémarre apache2 pour activer le mode SSL
sudo cp testdebit.crt /etc/ssl/private/testdebit.crt : Copie le CSR (Certificate Request)
sudo cp testdebit.key /etc/ssl/private/testdebit.key : Copie le certificat (clé privé)
sudo cp sub.class1.server.ca.pem /etc/ssl/private/sub.class1.server.ca.pem : Copie le Class 1 Intermediate Server CA
sudo cp ca.pem /etc/ssl/private/ca.pem : Copie le Copie le StartCom Root CA
Remplacez testdebit par votre nom de domaine.

On édite le fichier de configuration SSL de Apache 2.4 :
nano /etc/apache2/mods-enabled/ssl.conf

On se place a la fin du fichier, juste avant </IfModule>

copier / coller ce bloc qui configure le mod_ssl de Apache 2.4 :

        #Modif optimisaiton SSL
        SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4
        SSLProtocol All -SSLv2 -SSLv3
        SSLHonorCipherOrder On
        #SSLSessionTickets off demande Apache 2.4.11min:
        #SSLSessionTickets off
        SSLCompression off
        SSLUseStapling on
        SSLStaplingCache "shmcb:logs/stapling-cache(150000)"


On édite le fichier de configuration Apache 2.4 (je suppose que ce fichier existe déjà pour le site sans SSL).

nano /etc/apache2/sites-available/testdebit.conf

Voici à quoi il devrait ressembler pour une configuration basique si les fichiers du serveur sont dans le dossier /home/testdebit :

Configuration avant le passage au https :

# Redirection des requêtes http avec www vers le site sans www.
<VirtualHost *:80>
        ServerName "www.testdebit.info"
        Redirect permanent / https://testdebit.info/
        CustomLog ${APACHE_LOG_DIR}/redirect80.log combined
</VirtualHost>

# Hébergement du site en http
<VirtualHost *:80>
        ServerName "testdebit.info"
        ServerAdmin mail@domaine

        DocumentRoot "/home/testdebit"
        <Directory "/home/testdebit">
                Options None
                AllowOverride None
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
A noter qu'il faut éviter pour d'avoir un site web en double avec le www et sans le www, j'ai donc redirigé le site avec www vers le site sans www.



Voici maintenant la même configuration avec https activé par défaut :
# Redirection des requêtes http en https.
<VirtualHost *:80>
        ServerName "testdebit.info"
        ServerAlias "www.testdebit.info"

        Redirect permanent / [url]https://testdebit.info/[/url]
        CustomLog ${APACHE_LOG_DIR}/redirect80.log combined
</VirtualHost>

# Redirection des requêtes https avec www vers le site sans www.
<VirtualHost *:443>
        ServerName "www.testdebit.info"
        SSLEngine on
        SSLCertificateFile /etc/ssl/private/testdebit.crt
        SSLCertificateKeyFile /etc/ssl/private/testdebit.key
        SSLCertificateChainFile /etc/ssl/private/sub.class1.server.ca.pem
        SSLCACertificateFile /etc/ssl/private/ca.pem
        Header always set Strict-Transport-Security "max-age=63072000; preload"

        Redirect permanent / https://testdebit.info/
        CustomLog ${APACHE_LOG_DIR}/redirect443.log combined
</VirtualHost>

# Hébergement du site en https
<VirtualHost *:443>
        ServerName "testdebit.info"
        ServerAdmin mail@domaine

        SSLEngine on
        SSLCertificateFile /etc/ssl/private/testdebit.crt
        SSLCertificateKeyFile /etc/ssl/private/testdebit.key
        SSLCertificateChainFile /etc/ssl/private/sub.class1.server.ca.pem
        SSLCACertificateFile /etc/ssl/private/ca.pem
        # Utiliser HSTS (HTTP Strict Transport Security) pour forcer le navigateur a contacter le nom de domaine pendant 2ans que en https
        Header always set Strict-Transport-Security "max-age=63072000; preload"
        Header always set X-Frame-Options DENY
        Header always set X-Content-Type-Options nosniff

        DocumentRoot "/home/testdebit"
        <Directory "/home/testdebit">
                Options None
                AllowOverride None
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Il y a 3 redirections :
- Je redirige le site en http avec et sans www vers le site https sans le www
- Je redirige le site en https avec le www vers le site sans www

Une fois la configuration terminée, on tape la commande sudo service apache2 reload pour recharger les fichier de configuration de Apache 2.4
En cas d'erreur, lisez attentivement le message afin de trouver la faute.

si tout se passe bien vous avez ceci :

$ sudo service apache2 reload
 * Reloading web server apache2                                                  *
$



Configuration de Apache 2.2

Il y a quelques modifications non disponibles avec Apache 2.2
Voici une configuration qui fonctionne :

<VirtualHost *:443>
        ServerName "testdebit.info"
        ServerAdmin mail@domaine

        SSLEngine on
        SSLProtocol ALL -SSLv2 -SSLv3
        SSLCompression off
        SSLHonorCipherOrder On
        SSLCipherSuite 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
        SSLCertificateFile /etc/ssl/private/testdebit.crt
        SSLCertificateKeyFile /etc/ssl/private/testdebit.key
        SSLCertificateChainFile /etc/ssl/private/sub.class2.server.ca.pem
        SSLCACertificateFile /etc/ssl/private/ca.pem
        # Utiliser HSTS (HTTP Strict Transport Security) pour forcer le navigateur a contacter le nom de domaine pendant 2ans que en https
        Header always set Strict-Transport-Security "max-age=63072000; preload"
        Header always set X-Frame-Options DENY
        Header always set X-Content-Type-Options nosniff

        DocumentRoot "/home/testdebit"
        <Directory "/home/testdebit">
                Options None
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

N'oubliez pas de faire les redirections :
- pour ceux qui viennent du port 80
- pour ceux qui mettent www en plus et qui viennent du port 80
- pour ceux qui mettent www en plus et qui viennent du port 443
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 14:02:28
Étape 13/14 : Vérifications que tout fonctionne bien en https

Si l'intégralité du contenu est en https, un petit cadenas doit s'afficher en haut à droite.
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_39.png)
S'il y a des éléments sur votre page avec du http, alors un point d’exclamation va s'afficher, indiquant que "La connexion vers ce site n'est pas complètement sécurisée car il possède des éléments non chiffrés (tels que des images)". Il faut alors chercher à passer en https les éléments en http pour avoir le petit cadenas.

Il est possible d'afficher le certificat en cliquant sur le cadenas puis sur Afficher le certificat :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_40.png)

Onglet général :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_41.png)
Le certificat est valable 1 an, il faudra re-faire toutes les étapes décrites ici, à l'exception de l'inscription à StartSSL, avant l’expiration du certificat.

Onglet détail :
(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_42.png)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 14:02:42
Étape 14/14 : Vérifier la mise en place de SSL en détail avec https://www.ssllabs.com/ssltest/ (https://www.ssllabs.com/ssltest/)

Le test dure 2 minutes et va vous donner une note, normalement la note A, sinon il y a un problème.

Voici les notes que vous devez obtenir :
Certificate : 100
Protocol Support : 95
Key Exchange : 100
Cipher Strength : 90


(https://lafibre.info/testdebit/ubuntu/201407_tuto_https_startssl_ubuntu_server_43.png)


(https://lafibre.info/images/logo/licence_cc_by-sa.svg)
Cet article et les copies d'écran qui l'illustrent est publié sous la licence Creative Commons CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/deed.fr), afin de permettre sa diffusion par les autres médias (il faut citer l'auteur, Vivien GUEANT, mettre un lien vers cet article et réutiliser la même licence).
Tutoriel pour comprendre comment reprendre un contenu CC BY-SA 4.0 (https://lafibre.info/forum/creative-commons/).
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: corrector le 17 juillet 2014 à 14:31:11
Est-ce qu'on est forcé à mettre une phrase secrète (passphrase) sur le certificat, pour la retirer après?
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: kgersen le 17 juillet 2014 à 14:53:52
Starcom ... c'est pas une filiale du Mossad çà ?  ;D

Attention aux erreurs et changements aussi, les révocations de certificats ne sont pas gratuites (mais ca reste raisonnable: $25).
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 17 juillet 2014 à 14:58:26
Oui, pour des raisons de sécurité (pendant l'étape de signature), il est nécessaire de mettre une passphrase sans quoi StartSSL refuse.

Le mot de passe (passphrase) demandé doit contenir uniquement des chiffres et des lettres. Sa taille minimum est de 10 caractères et sa taille maximum est de 32 caractères sans quoi StartSSL va le refuser.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: reg73 le 17 juillet 2014 à 15:00:10
Merci Vivien pour ce tutorial...Ca va aider tous ceux qui n'ont pas de vrai certificat et qui ont une certaine paresse pour y remedier...  :P
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: tit91 le 17 juillet 2014 à 15:01:23
Est-ce qu'on est forcé à mettre une phrase secrète (passphrase) sur le certificat, pour la retirer après?

Pour moi c'est inutile, cette passphrase ne protège que la clé privée dont la CA n'a que faire.
Je n'en ai jamais mis et ça n'a jamais posé de problème (edit: avec StartSSL également !).

Note, il se peut que les navigateurs affichent une erreur si l'on se connecte au site web très rapidement après que la CSR ait été signée, car les "OCSP responders" ne sont pas encore à jour.
Titre: Les AC sont des tiers de CONFIANCE!
Posté par: corrector le 17 juillet 2014 à 15:17:28
Starcom ... c'est pas une filiale du Mossad çà ?  ;D
Peu importe! N'importe quelle Autorité présente parmi les racines peut te trahir (sinon, ce n'est pas un tiers de confiance).

Les solutions :
- pinning
- solutions basées sur DNSSEC (vivien, à quand tu passes lafibre en DNSSEC? info. est signé)
- Perspective, Convergence
- Certificate Patrol
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: Snickerss le 17 juillet 2014 à 21:26:30
Merci Vivien pour ce tutorial...Ca va aider tous ceux qui n'ont pas de vrai certificat et qui ont une certaine paresse pour y remedier...  :P

+1  :)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: VincentAlex le 10 août 2014 à 14:31:25
Merci pour le tuto.
Question : quel sont les pré requis sur l'hébergement pour passer son site sur HTTPS ? Par exemple, est ce que cela peut fonctionner sur un hébergement mutualisé comme 90plan d'OVH ?

Merci.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 11 août 2014 à 08:56:19
En mutualisé, seul des hébergements haut de gamme (non proposés par OVH) avec une IP publique pour chaque site, permet de mettre son propre certificat SSL.

Quand l'IP est partagée, il faut un unique certificat pour tous les sites mutualisés sur la même IP.

C'est donc obligatoirement géré par l'hébergeur.

Voici le comparatif en mutualisé fait sur un autre post : Un seul hébergeur propose le https gratuitement en mutualisé :
En hébergement mutualisé, le SSL peut être proposé gratuitement, comme pour one.com ( https://www.one.com/fr/ (https://www.one.com/fr/) ), facturé 59,99€/an de plus (OVH) ou non disponible (Online.net, host.fr et la grande majortié des petits hébergeurs mutualisé)

Online.net : Pas de SSL possible en mutualisé
Host.fr : Pas de SSL possible en mutualisé

One.com : SSL Gratuit
Gandi : SSL proposé à partir de la formule M (9,6€/an hors nom de domaine) pour 14,4€/an de + par an (option gratuite la 1ère année)
PHPNET.org : SSL externe possible avec la formule "Premium" à partir 23,75€/an (prix incluant l'option IP dédiée obligatoire)
Amen.fr : SSL proposé à partir de la formule "Professional" à partir de 57,60€/an hors nom de domaine
1&1.fr : SSL proposé sur la formule haut de gamme "unlimited" à partir de 71,88€/an
OVH.com : SSL facturé 59,99€/an (hors hébergement web et hors nom de domaine)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: corrector le 11 août 2014 à 10:43:34
De fait en mutualisé le domaine est géré pas l'hébergeur, je ne vois pas ce qui s'oppose à ce qu'il gère aussi le coté certificat. On peut mettre plein de nom de domaines différents dans un même certificat.

De toute façon le certificat TLS ancre le protocole TLS, et le protocole ne sert qu'à protéger les données entre le client et le serveur. Le serveur est bien géré par l'hébergeur par définition.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: Thibault le 09 octobre 2014 à 21:45:08
Cloudflare propose gratuitement un SSL pour rendre son site en HTTPS.
Par contre il intervient entre le client <=> Clouflare.
Ensuite entre Cloudflare <=> Serveur on peut installer son propre SSL, ou en auto-signer un, vu que le client ne le voit pas, pas de problème.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: corrector le 09 octobre 2014 à 22:01:30
Le chiffrement "de bout en bout" en prend un coup. :(
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: Thibault le 09 octobre 2014 à 22:04:59
C'est quand même bien indiqué : https://support.cloudflare.com/hc/en-us/articles/200170416
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: corrector le 09 octobre 2014 à 22:18:27
Oui mais ça casse le principe de chiffrement de bout en bout.

Tu n'es pas en liaison avec le serveur du fournisseur de service, mais avec un intermédiaire. Et en plus le navigateur du client ne peut pas vérifier le vrai certificat du serveur vu qu'il ne le voit pas. Cela introduit de nouvelles possibilités d'attaques.

Cela doit empêcher d'authentifier le client TLS, aussi.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: Thibault le 09 octobre 2014 à 22:22:20
Ouai mais c'est le principe du CDN non ? Cloudflare diffuse notre site sur plusieurs points dans le monde.

Je suis totalement d'accord avec toi, que ça instaure une faille.
Edit : Après si c'est un site perso qui demande rien sauf un email, je ne vois pas l’intérêt de payer un certificat, maintenant que Google a annoncé qu'il va (ou veut) mettre en première position uniquement les sites sécurisés (https)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: corrector le 09 octobre 2014 à 22:25:57
Oui :
1) on s'en remet à un tiers : le fournisseur du CDN, Cloudflare, qui peut altérer les données ou garder des logs.
2) "Full SSL (Strict)" : en plus on s'en remet à la vérification du certificat par Cloudflare qui n'est pas capable de documenter ce qu'il entend pas "valide" autrement que par le foireux "This certificate must be signed by a certificate authority,". Est-ce que Cloudflare fait confiance à des guignols comme l'administration française? On peut pas le savoir.

Cela n'inspire pas du tout confiance.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: Thibault le 09 octobre 2014 à 22:28:08
Est-ce que Cloudflare fait confiance à des guignols comme l'administration française? On peut pas le savoir.
Tu peux leur demander, j'ai que des sites avec une offre gratuite chez eux, et j'ai eu une réponse à 20h40 en 10 minutes.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: corrector le 09 octobre 2014 à 22:29:50
Le fait que ça ne soit pas documenté n'inspire pas confiance.

Surtout il faudrait pouvoir gérer ça soi-même.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: Thibault le 09 octobre 2014 à 22:36:43
Avec les offres Entreprises tu peux gérer toi même les certificats.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 09 octobre 2014 à 22:40:30
C'est le principe du CDN (Akamai est le plus connu) : Ils ont accès aux données et pourraient les modifier. L'hébergeur est en fait le CDN.

Quand tu vas sur le site de la maison blanche ( http://www.whitehouse.gov/ (http://www.whitehouse.gov/) ) tu ne sais pas si c'est le vrai contenu ou pas (ils utilisent Akamai)

Là ils proposent en plus de l'https. C'est bout en bout entre le CDN et le client.

Généralement le contenu sur un CDN, c'est plus des images statiques que des données confidentielles. Les photos de Facebook sont chez Akamai mais pas le site dynamique.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: corrector le 09 octobre 2014 à 22:52:40
Oui mais en plus de la vulnérabilité propre à l'intermédiaire, il y a le fait que la vérification du certificat est faite de façon incertaine par CloudFlare.

Il y a donc un risque de MITM entre CloudFlare et ton serveur, par une agence qui peut fabriquer des certificats. Et cela même si le client vérifie consciencieusement les certificats.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: kgersen le 20 novembre 2014 à 12:36:03
Un truc qui sort a l'été 2015: https://letsencrypt.org/

en gros ca sera "pour chiffrer un site web gratuitement en 2 étapes simples":

$ sudo apt install lets-encrypt
$ lets-encrypt example.com

c'est tout ;)

qui est derriere ca: Mozilla, Akamai, Cisco, l'EFF et IdenTrust ... donc pas des 'petits'.

A suivre dans un peu plus de 6 mois donc.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 08 juin 2015 à 19:45:56
Tutoriel mis à jour avec une configuration plus propre pour Debian / Ubuntu avec le gros de la configuration dans /etc/apache2/mods-enabled/ssl.conf

J'ai également activé dans la configuration :
- OCSP Stapling Cache (https://lafibre.info/cryptographie/ocsp-stapling/) (accélère le chargement des pages et évite certains risques de DDOS)
- HTTP Strict Transport Security (https://lafibre.info/cryptographie/http-strict-transport-security/) (force l’utilisation du https, pour les sites 100% https)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: kgersen le 23 octobre 2015 à 15:26:59
Un truc qui sort a l'été 2015: https://letsencrypt.org/

en gros ca sera "pour chiffrer un site web gratuitement en 2 étapes simples":

$ sudo apt install lets-encrypt
$ lets-encrypt example.com

c'est tout ;)

qui est derriere ca: Mozilla, Akamai, Cisco, l'EFF et IdenTrust ... donc pas des 'petits'.

A suivre dans un peu plus de 6 mois donc.

Depuis le 19 octobre, https://letsencrypt.org/ est maintenant 'trustés' par quasi tout les navigateurs. test ici: https://helloworld.letsencrypt.org/

La beta est imminente.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: kgersen le 04 décembre 2015 à 19:07:28
https://letsencrypt.org/ est maintenant en beta public. Vous pouvez en quelques secondes obtenir un certificat pour un site.

la manip est simple, à  faire sur le serveur web du site a certifier:

installer manuellement le script s'il n'est pas dispo dans les dépôts de votre distribution:

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
~/letsencrypt$ ./letsencrypt-auto

Cela va installer ce qu'il faut et lancer un assistant de configuration et tout installer automatiquement.
Titre: Objectifs de TLS
Posté par: corrector le 05 décembre 2015 à 00:03:47
En passant je rappelle que la sécurité apportée par le chiffrement ne concerne pas que la confidentialité du contenu des échanges (1) mais avant tout l'intégrité du contenu (2) et l'identité éventuellement vérifiée des extrémité (3).

Bien évidemment l'intégrité d'un document peut être vérifiée par des méthode de signature et des certificats (PGP, S/MIME, Authenticode ... pour une application limitée DNSSEC) mais aucun de ces outils n'est directement applicable à une page Web.

(1) le contenu c'est à dire la valeur de chaque octet envoyé ou reçu dans le flux TCP, mais pas la direction de l'échange, la longueur des messages, la durée de la connexion, l'identité des extrémités

(2) le contenu c'est à dire la longueur et le contenu de chaque message envoyé ou reçu dans le flux TCP, donc la direction de l'échange, la longueur des messages, la durée de la connexion

(3) l'identité est celle décrite par des certificats TLS pour le serveur et éventuellement le client, pas les adresses IP : TLS n'interdit pas S-NAT ou D-NAT
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: kgersen le 04 février 2016 à 10:58:41
faudrait peut-etre actualisé cet article avec letsencrypt (NSA compliant) plutot que StartSSL (Mossad compliant) ?  :P
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 04 février 2016 à 11:03:01
Je propose de créer un second article pour letsencrypt, je mettrais le lien dans le premier post.

Qui est partant pour le faire ?

Il faut bien indiquer toutes les étapes, pour une personne qui a peu de connaissance en administration de serveur.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: kgersen le 04 février 2016 à 11:48:50
Je propose de créer un second article pour letsencrypt, je mettrais le lien dans le premier post.

Qui est partant pour le faire ?

Il faut bien indiquer toutes les étapes, pour une personne qui a peu de connaissance en administration de serveur.

j'ai pas trop le temps mais voici quelques infos:

pour Apache sur Debian:

sudo apt install letsencrypt python-letsencrypt-apache
letsencrypt --apache

c'est tout ...

A terme les éditeurs de logiciel de serveur web vont intégrer letsencrypt directement dans leur code. Par exemple, https://caddyserver.com/ fait cela deja: si on active https, ca va tout seul faire la demande de certifs, les récupérer et les installer: on n'a rien à  faire pour chiffrer son serveur web.

si on vise un public qui a peu de connaissance il vaut peut-être mieux attendre que letsencrypt soit intégré dans les distribs donc.

Le public averti peut lire la doc pour l'installer soi-meme: https://letsencrypt.readthedocs.org/en/latest/

perso j'utilise Docker et cette méthode:

1. installer Docker si c'est pas déja fait (apt install lxc-docker ou https://docs.docker.com/engine/installation/ )
2. stopper votre serveur web (de façon a libérer les ports 80 et 443)
3. lancer:

sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \
            -v "/etc/letsencrypt:/etc/letsencrypt" \
            -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
            quay.io/letsencrypt/letsencrypt:latest auth

et répondre aux questions (nom(s) de domaine, email, etc).

4. les certifs seront dispo dans /etc/letsencrypt/live ( le .crt, le .key, etc)
5. parametrer votre serveur web pour utiliser ces certifs (cf Étape 12/14 (https://lafibre.info/cryptographie/tuto-https/msg153945/#msg153945))
6. démarrer votre serveur web

(en pratique je déplace "/etc/letsencrypt/" dans un endroit sécurisé & partagé et la conf du ou des serveurs web pointe dessus).
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 04 février 2016 à 11:52:26
sudo apt install letsencrypt python-letsencrypt-apache
C'est un peu rapide, car il faut rajouté le dépôt APT qui vas bien pour que cela fonctionne...
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: kgersen le 04 février 2016 à 12:17:07
sudo apt install letsencrypt python-letsencrypt-apache
C'est un peu rapide, car il faut rajouté le dépôt APT qui vas bien pour que cela fonctionne...

pour l'instant c'est Debian Stretch ou Sid. C'est peut-etre pas remonté vers l'Ubuntu correspondante encore.

A ce jour, les seuls distribs qui ont un package officiel:

FreeBSD
OpenBSD
Arch Linux
Debian
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: Paul le 14 avril 2016 à 10:32:08
Je pense qu'une mise à jour du tuto ne ferait pas de mal car le site de StartCom a changé, de plus, les fichiers téléchargés ne sont pas les mêmes (il n'y a plus de fichiers PEM, que des fichiers CRT).

Après, j'utilise Let's Encrypt, c'est encore plus simple à configurer selon moi et ça fonctionne tout aussi bien.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: kgersen le 14 avril 2016 à 12:53:21
et Let's Encrypt est sorti de beta et est maintenant en version finale.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: corrector le 14 avril 2016 à 19:13:56
Cela marche sur FF maintenant?
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: vivien le 14 avril 2016 à 19:40:26
Mozilla fait parti des sponsors de Let's Encrypt (avec the Electronic Frontier Foundation (EFF), Akamai, et Cisco Systems)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: Hugues le 17 janvier 2017 à 09:22:11
Tiens, je note que lafibre.info est passé sur letsencrypt depuis hier :p
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: alain_p le 17 janvier 2017 à 09:33:25
Exact, vérifié dans firefox.
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: Electrocut le 03 février 2017 à 10:32:57
Bonjour,

Pour information, la version 51 de Firefox (diffusée le 24/01/2017), considère les certificats StartCom / WoSign émis après le 21/10/2016 comme révoqués ...
Je viens d'en faire les frais pour mon nom de domaine, après avoir reçu la mise à jour automatique de Firefox hier ;)

pi@domoticz:~ $ openssl x509 -in /etc/ssl/domoticz/server.crt -noout -text
...
        Issuer: C=IL, O=StartCom Ltd., OU=StartCom Certification Authority, CN=StartCom Class 1 DV Server CA
        Validity
            Not Before: Jan 25 17:11:13 2017 GMT
            Not After : Jan 25 17:11:13 2020 GMT


-> startssl.com n'est clairement plus la solution, pour mettre en place gratuitement un certificat électronique sur un site HTTPS.

(je n'ai plus qu'à aller lire des tutos Let’s Encrypt ;D)
Titre: Tutoriel pour chiffrer un site web gratuitement en 14 étapes simples
Posté par: zoc le 03 février 2017 à 11:12:03
A noter, pour ceux qui veulent passer chez Let's Encrypt et qui veulent sécuriser une machine sur laquelle il n'y a pas de serveur WEB, il existe d'autres clients Let's encrypt supportant notamment la méthode "DNS" (qui consiste à publier un Token dans la zone DNS à protéger, au lieu de déposer un fichier sur un serveur WEB), ce que le client officiel ne supporte pas ! .

Personnellement j'utilise acme.sh (https://github.com/Neilpang/acme.sh), entièrement écrit en bash et qui supporte nativement de nombreux hébergeurs de zones DNS (cloudflare pour moi).

Edit: Apparemment le client officiel supporte maintenant le mode dns-challenge également.