«

Fév 06 2016

[Tuto]: Certificat SSL gratuit avec Let’s Encrypt !

Hello!

Dans ce tuto nous allons voir comment générer gratuittement un certificat SSL avec Let’s Encrypt !

C’est quoi Let’s Encrypt?

Let's Encrypt

Let’s Encrypt

Let’s Encrypt (ou LE) est un projet Open Source qui est financé par de grands noms du web tels que : Mozilla, Google, Cisco et plus récement OVH (liste complète ici)

Ce projet a pour but de simplifer la création de certificat SSL afin de sécuriser les échanges client/serveur mais l’énorme avantage et que ceci est tout a fait gratuit !

J’étais inscrit a la bêta fermé mais maintenant que la Beta publique est disponible je vais vous expliquer comment ça marche.

Il y a deux façon génerer des certificats SSL avec LE, Automatique ou Manuel.

Nous allons voir comment utiliser les deux méthodes.

La méthode automatique

La méthode automatique, consiste à installer les outils de LE directement sur le serveur web qui héberge le site a mettre en HTTPS.

Nous allons faire cela à partir d’un serveur Web sur CentOS:

Installation des dépendances:

Pour utiliser LE sur votre serveur web vous devez installer GIT.

yum install git

Installation de LE

Une fois git installé vous pouvez cloner le git de LE sur votre serveur:

git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Afin de le retrouver facilement je l’ai mis dans /opt/

Une fois le dépot cloné, allez dans le dossier /opt/letsencrypt

cd /opt/letsencrypt

Création de votre certificat SSL

Et tapez la commande afin de créer votre certificat SSL:

./letsencrypt-auto --apache -w racine_de_votre_site_web -d votredomaine.com

Exemple pour créer un certificat SSL pour web.denisrosenkranz.com

./letsencrypt-auto certonly --webroot -w /var/www/html/ -d web.denisrosenkranz.com

Si c’est la première fois que vous lancez cette commande des dépendances vont être installées

 Vous pouvez relancer la commande et si tout se passe bien vous devried avoir quelque chose comme ceci à la fin
Version: 1.1-20080819
Version: 1.1-20080819

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/web.denisrosenkranz.com/fullchain.pem. Your
   cert will expire on 2016-05-05. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
 - If you like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Vos certificats seront donc disponibles dans /etc/letsencrypt/live/votredomaine.com

Méthode manuelle

Si vous ne pouvez/voulez pas installer les outils de LE sur votre serveur Web vous pouvez le faire à partir de n’importe quelle machine sous Linux.

Voici un exemple si vous utilisez Ubuntu.

Comme pour le serveur vous devez installer git et cloner le dépot:

sudo apt-get install git
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

La méthode manuelle fonctionne de la façon suivante:

  • Vous spécifiez le domaine pour lequel vous souhaitez installer un certificat SSL
  • LE va fous fournir les informations pour créer sur votre serveur distant un page que LE va vérifier afin de valider que votre serveur vous appartient.
  • Une fois cela fait les certificats vont être générés.

Voici la commande:

cd /opt/letsencrypt
sudo ./letsencrypt-auto certonly -d votredomaine.com --manual

Vous aurez quelquechose come ceci:

Make sure your web server displays the following content at
http://votredomaine.com/.well-known/acme-challenge/HkMzdniMlWmFXqx7enflAiasdsfNOdHfInyB0F61GdJSa-6g before continuing:

HkMzdniMlWmFXqx7enflAiNOdHfInyB0F61GdJSa-6g.AUKfznt4sfV0vciGhCElv_Awl9r4az0l8bTj_Y1qbfLDE

If you don't have HTTP server configured, you can run the following
command on the target server (as root):

mkdir -p /tmp/letsencrypt/public_html/.well-known/acme-challenge
cd /tmp/letsencrypt/public_html
printf "%s" HkMzdniMlWmFXqx7enflAiNOdHfInyB0F61GdJSa-6g.AUKfznt4V0vciGhCElv_Awl9r4az0l8bTj_Y1qbfLDE > .well-known/acme-challenge/HkMzdniMlWmFXqx7enflAiNOdHfInyB0F61GdJSa-6g
# run only once per server:
$(command -v python2 || command -v python2.7 || command -v python2.6) -c \
"import BaseHTTPServer, SimpleHTTPServer; \
s = BaseHTTPServer.HTTPServer(('', 80), SimpleHTTPServer.SimpleHTTPRequestHandler); \
s.serve_forever()" 
Press ENTER to continue:

Uen fois cela fait, pressez Enter vos certificat SSL vont être générés dans le dossier /etc/letsencrypt/live/votredomaine.com

Comment installer vos certificats?

Une fois vos certificats générés vous devriez avoir ceci:

[root@web letsencrypt]# ls /etc/letsencrypt/live/web.denisrosenkranz.com/
cert.pem  chain.pem  fullchain.pem  privkey.pem

Pour savoir comment configurer votre serveur HTTP il existe un outils pratique ici:

https://mozilla.github.io/server-side-tls/ssl-config-generator/

Dans le cas d’Apache vous devez configurez votre VirtualHost SSL comme ceci:

SSLEngine on
SSLCertificateFile      /path/to/signed_certificate
SSLCertificateChainFile /path/to/intermediate_certificate
SSLCertificateKeyFile   /path/to/private/key

Dans mon cas cela ressemble a ceci:

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/web.denisrosenkranz.com/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/web.denisrosenkranz.com/chain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/web.denisrosenkranz.com/privkey.pem

Redémarrez Apache et Oh Miracle !

Le fameux cadenas vert!

Le fameux cadenas vert!

Verifié par Let's Encrypt

Verifié par Let’s Encrypt

C’est cool non?

N’heistez pas à supporter le projet ici: https://letsencrypt.org/

(3 commentaires)

  1. Romain

    Merci ça fonctionne parfaitement. Enfin un bon tuto sur le ssl gratuit

  2. gitrix

    Merci!!!

  3. ramzy

    super tuto . merci bcp

Laisser un commentaire

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

Lire les articles précédents :
mysql-cluster-logo-150x105
[Tuto]: Replication Master-Slave avec MySQL sous Debian 8

Bonjour à tous, Dans ce tuto nous allons voir comment mettre en place une replication master-slave avec MySQL sous Debian...

Fermer