Certbot - Obtenir un certificat SSL gratuitement et facilement

Stamina

Membre
Inscription
1 Mai 2017
Messages
16
Réactions
13
Points
61


Salut,

La plupart des développeurs connaissent Let's Encrypt qui permet d'avoir un certificat SSL pour passer sur du HTTP(S)


Ayant cherché sur le forum des sujet parlant de Certbot, aucun sujet n'avait été proposé donc je vous le fait connaitre et pourquoi pas vous le faire utiliser.

C'est un outil crée par l'Electronic Frontier Foundation (EFF) pour obtenir en pas moins d'une seule ligne de commande son certificat et de configurer son serveur web par la suite.

Première étape :

  • Installer sur votre serveur.
Il va falloir télécharger le script, l'exécuter et le lancer.

Code:
wget https://dl.eff.org/certbot-auto


chmod a+x certbot-auto


Seconde étape :

  • Générer les certificats.
Pour ceux qui utilise nginx, la ligne de commande à lancer est :

Code:
./certbot-auto --nginx

Pour ceux qui utilisent Apache, la ligne de commande à lancer est :

Code:
./certbot-auto --apache

Certbot va par la suite lister vos vistualhots.
Il va falloir choisir les serveurs que vous voulez migrer en HTTPS. Si vous n'avez pas vraiment d'expériences, je vous invite à le faire site par site.
Si vous utilisez WordPress, pensez aussi à désactiver les plugins, car certains pourraient poser problème.



À ce moment là, Certbot va commencer à générer les certificats Let's Encrypt pour modifier la config Apache / nginx pour que le HTTPS soit activé par défaut sur votre site.
Certbot va vous demander si vous voulez passer :

  • Exclusivement en HTTPS (2/ Secure)
ou
  • Garder aussi une connexion HTTP (1/ Easy).



Je vous recommande vivement l'option 2 pour éviter les contenus dupliqués.


Les problèmes qui peuvent survenir :

  • Erreurs de mixed content

Pour régler cela, il va falloir corriger certains appels dans votre :

  • Thème
  • Plugins
Ou bien il va falloir préciser votre URL en HTTPS dans votre fichier "wp-config.php" comme ceci :

Code:
define('WP_HOME','https://VOTRESITE.com'); define('WP_SITEURL','https://VOTRESITE.com');

Il est possible que malgré avoir corriger cette erreur, votre site reste en HTTP, il va falloir éditer votre Virtualhots et décommenter la partie qui concerne les redirections 301 de HTTP vers HTTPS.

Voici mon exemple sous nginx :



Pour en savoir davantage plus sur votre configuration SLL vous pouvez utiliser le service de SSLlab :

  • Exemple :

Troisième et dernière étape :

  • Le renouvellement automatique de vos certificats
90 jours, c'est le temps que dur le certificat, mais pas de problème, Certbot est très bien optimisé et vous pouvez en une simple ligne de commande automatiser le renouvellement ! ::):

Il va falloir tester à vide si il n'y a pas d'erreurs entre les éventuels certificats et leurs renouvellements.

Code:
./CHEMIN/VERS/certbot-auto renew --dry-run

Si tout est OK, vous allez éditer votre crontab avec cette simple commande :

Code:
crontab -e

Par la suite nous allons ajouter une ligne de commande pour lancer une vérification de nos certificats 2 fois par jour.

Code:
*/12 * * * * /CHEMIN/VERS/certbot-auto renew --quiet --no-self-upgrade

PS : Ceux qui sont sous Cloudflare il est possible que vous ayez une erreur de ce type :

  • "Failed to connect to XXX.XXX.XXX.XXX for TLS-SNI-01 challenge"
Il suffit de passer par Crypto via le dashboard


Et voilà, si tout s'est bien passé, votre certificat est maintenant validé ! ::p:


 

Enzo34!

★REALITYGAMING★
Premium
Inscription
31 Janvier 2014
Messages
1 417
Réactions
329
Points
17 831
Tuto complet j'aime continu ainsi :ok: !
 
Haut