Réseaux et Télécom » Let's Encrypt, comment on fait sous LInux, comment on fait ...
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 01/05/2017 @ 11:42:53,
Par zionHellow,
Le HTTPS c'est le bien, et let's encrypt c'est vraiment super pratique. Plutôt que de réinventer la roue, voici quelques infos/scripts pour ma part, de quoi faire votre config dans votre coin.
Pour info, c'est sur base de Fedora et Lighttpd, si vous avez un Apache, Nginx ou autre, il faudra adapter.
Primo, le site:
https://letsencrypt.org/
Ca, c'est joli, mais concrètement, il faut surtout installer le certbot, que voici pour toutes les distros:
https://certbot.eff.org/
Une fois le truc installé, il faut le lancer avec une commande du genre
certbot certonly --expand --webroot -w /var/www/html/votredomaine/ -d votredomaine.be
Il va créer tous les fichiers kivonbien dans /etc/letsencrypt.
De là , je me suis créé un script qui va tourner chaque semaine, dans /etc/cron.weekly/renew.sh par exemple.
/usr/bin/certbot renew
cd /etc/letsencrypt/live/votredomaine/
cat privkey.pem cert.pem > moncertif.pem
rm -f /etc/lighttpd/ssl/moncertif.pem
mv /etc/letsencrypt/live/votredomaine/moncertif.pem /etc/lighttpd/ssl/moncertif.pem
/sbin/service lighttpd restart
Il y a plus gracieux, mais un restart de 2s par semaine, bah...
Ensuite, il faut ajouter le certificat dans lighttpd.conf:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/moncertif.pem"
ssl.ca-file = "/etc/lighttpd/ssl/letsencrypt.pem"
}
Ne pas oublié bien sûr le certificat intermédiaire, pour moi c'était celui-ci (sinon Google, letsencrypt intermediate):
/etc/lighttpd/ssl/letsencrypt.pem
Puis idéalement, si vous voulez passer tout le monde en HTTPS, il faut une petite regexp du genre dans lighttpd.conf. A adapter selon vos besoins.
$HTTP["scheme"] == "http" {
$HTTP["host"] =~ "^([a-zA-Z0-9]+.)?votredomaine.com$" {
url.rewrite-repeat = (
),
url.redirect = ( "^/(.*)" => "https://%1votredomaine.com/$1")
}
}
Et bam.
Oubliez pas de valider que la config est correcte après avec un truc du genre:
https://www.sslshopper.com/ssl-checker.html
L'erreur la plus courante étant d'oublier le certificat intermédiaire, et alors sous Android / iOS, votre certificat sera refusé, ça fait mauvais genre.
Have fun!
Le HTTPS c'est le bien, et let's encrypt c'est vraiment super pratique. Plutôt que de réinventer la roue, voici quelques infos/scripts pour ma part, de quoi faire votre config dans votre coin.
Pour info, c'est sur base de Fedora et Lighttpd, si vous avez un Apache, Nginx ou autre, il faudra adapter.
Primo, le site:
https://letsencrypt.org/
Ca, c'est joli, mais concrètement, il faut surtout installer le certbot, que voici pour toutes les distros:
https://certbot.eff.org/
Une fois le truc installé, il faut le lancer avec une commande du genre
certbot certonly --expand --webroot -w /var/www/html/votredomaine/ -d votredomaine.be
Il va créer tous les fichiers kivonbien dans /etc/letsencrypt.
De là , je me suis créé un script qui va tourner chaque semaine, dans /etc/cron.weekly/renew.sh par exemple.
/usr/bin/certbot renew
cd /etc/letsencrypt/live/votredomaine/
cat privkey.pem cert.pem > moncertif.pem
rm -f /etc/lighttpd/ssl/moncertif.pem
mv /etc/letsencrypt/live/votredomaine/moncertif.pem /etc/lighttpd/ssl/moncertif.pem
/sbin/service lighttpd restart
Il y a plus gracieux, mais un restart de 2s par semaine, bah...
Ensuite, il faut ajouter le certificat dans lighttpd.conf:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/moncertif.pem"
ssl.ca-file = "/etc/lighttpd/ssl/letsencrypt.pem"
}
Ne pas oublié bien sûr le certificat intermédiaire, pour moi c'était celui-ci (sinon Google, letsencrypt intermediate):
/etc/lighttpd/ssl/letsencrypt.pem
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
-----END CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
-----END CERTIFICATE-----
Puis idéalement, si vous voulez passer tout le monde en HTTPS, il faut une petite regexp du genre dans lighttpd.conf. A adapter selon vos besoins.
$HTTP["scheme"] == "http" {
$HTTP["host"] =~ "^([a-zA-Z0-9]+.)?votredomaine.com$" {
url.rewrite-repeat = (
),
url.redirect = ( "^/(.*)" => "https://%1votredomaine.com/$1")
}
}
Et bam.
Oubliez pas de valider que la config est correcte après avec un truc du genre:
https://www.sslshopper.com/ssl-checker.html
L'erreur la plus courante étant d'oublier le certificat intermédiaire, et alors sous Android / iOS, votre certificat sera refusé, ça fait mauvais genre.
Have fun!
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 02/05/2017 @ 10:55:47,
Par antpje vais finir par ne plus avoir d'excuse pour ne pas le faire
certbot on l'installe comment ? Parce que ni lighttpd ni ma vieille Fedora ne sont prévues sur le site
c'est quoi ce certificat intermédiaire ? Comment je sais ce qu'il faut ?
Au passage, forcer le https dans le cas d'informaticien.be ne m'arrange pas : le proxy du boulot le bloque (catégorie "games") alors que la version http passait
Dernière édition: 02/05/2017 @ 10:57:05
certbot on l'installe comment ? Parce que ni lighttpd ni ma vieille Fedora ne sont prévues sur le site
c'est quoi ce certificat intermédiaire ? Comment je sais ce qu'il faut ?
Au passage, forcer le https dans le cas d'informaticien.be ne m'arrange pas : le proxy du boulot le bloque (catégorie "games") alors que la version http passait
Dernière édition: 02/05/2017 @ 10:57:05
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 02/05/2017 @ 11:38:52,
Par zionC'est un RPM, tu as une version antérieure à 22? Pour Lighttpd, justement, c'est un "tuto" pour Lighttpd, tu dois toi même spécifier le tout, et la config pour Lighttpd est détaillée au dessus.
Difficile de ne pas forcer tout le monde en HTTPS en fait, je ne vois pas trop comment je pourrais faire autrement
Difficile de ne pas forcer tout le monde en HTTPS en fait, je ne vois pas trop comment je pourrais faire autrement
Je suis le Roy
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 02/05/2017 @ 12:13:02,
Par Dr_Dancertbot on l'installe comment ? Parce que ni lighttpd ni ma vieille Fedora ne sont prévues sur le site
git clone https://github.com/certbot/certbot et suivre les instructions dans le README
C'est de cette manière que c'était distribué avant d'être distribué dans les dépôt officiels.
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 02/05/2017 @ 14:16:02,
Par antpC'est un RPM, tu as une version antérieure à 22?
20
j'avais trouvé un tuto pour faire le renouvellement auto sans certbot, ça avait pas l'air hyper compliqué, faudra que je suive ça
Difficile de ne pas forcer tout le monde en HTTPS en fait
en effet, il faut le forcer au moins pour le login, et ça ne résoudrait pas mon problème
Dernière édition: 02/05/2017 @ 14:19:39
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 02/05/2017 @ 14:31:04,
Par zionJ'ai une solution pour le deuxième point, si tu vas sur v3.informaticien.be, avec comme htaccess ton login, ça passera en HTTP, j'y force pas le HTTPS, ça devrait le faire
Je suis le Roy
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 02/05/2017 @ 14:38:19,
Par antpaprès login http ça charge dans le vide
enfin, c'est pas grave, je viens sur le site avec mon tél ou ma tablette à la place
enfin, c'est pas grave, je viens sur le site avec mon tél ou ma tablette à la place
mes programmes ·· les voitures dans les films ·· champion des excuses bidons
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 02/05/2017 @ 14:59:12,
Par zionComment ça dans le vide, je proteste, ça tourne
Je suis le Roy
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 02/05/2017 @ 14:59:44,
Par zion(Mais il est possible que sur certains liens il redirige vers la partie https://www classique).
Je suis le Roy
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 08/05/2018 @ 18:27:30,
Par antpPremier renouvellement auto d'un des certifs de mon serveur, ça a marché \o/
J'en profite pour upper ce topic : plutôt que de faire une vérif de renouvellement toutes les semaines avec le restart du serveur web d'office comme un bourrin ( ), je fais la vérif tous les jours (comme c'est ce qu'ils conseillent de faire...) avec restart du serveur seulement s'il y a eu une modif.
Ça donne ceci dans le cron.daily:
et ceci dans le script "update-certif.sh":
(dans mon cas j'avais gardé la clé combinée pour lighttpd dans le même dossier que les clés d'origine, comme j'en avais aussi besoin pour un autre truc)
edit: ah et pour s'il y en a qui comme moi ont des sous-domaines ou plusieurs domaines qu'ils veulent lier au même certif, il faut que le dossier créé par certbot dans .well-known à la racine de tous les sites pointe vers le même dossier, donc j'ai fait ceci :
et je lance ensuite ceci pour créer les certifs :
Dernière édition: 08/05/2018 @ 18:35:34
J'en profite pour upper ce topic : plutôt que de faire une vérif de renouvellement toutes les semaines avec le restart du serveur web d'office comme un bourrin ( ), je fais la vérif tous les jours (comme c'est ce qu'ils conseillent de faire...) avec restart du serveur seulement s'il y a eu une modif.
Ça donne ceci dans le cron.daily:
certbot renew --renew-hook "/usr/bin/update-certif.sh" > /var/log/certbot-renew.log
et ceci dans le script "update-certif.sh":
cat /etc/letsencrypt/live/domaine1/privkey.pem /etc/letsencrypt/live/domaine1/cert.pem > /etc/letsencrypt/live/domaine1/combined.pem
cat /etc/letsencrypt/live/domaine2/privkey.pem /etc/letsencrypt/live/domaine2/cert.pem > /etc/letsencrypt/live/domaine2/combined.pem
systemctl restart lighttpd
cat /etc/letsencrypt/live/domaine2/privkey.pem /etc/letsencrypt/live/domaine2/cert.pem > /etc/letsencrypt/live/domaine2/combined.pem
systemctl restart lighttpd
(dans mon cas j'avais gardé la clé combinée pour lighttpd dans le même dossier que les clés d'origine, comme j'en avais aussi besoin pour un autre truc)
edit: ah et pour s'il y en a qui comme moi ont des sous-domaines ou plusieurs domaines qu'ils veulent lier au même certif, il faut que le dossier créé par certbot dans .well-known à la racine de tous les sites pointe vers le même dossier, donc j'ai fait ceci :
ln -s /var/www/certbot/.well-known /var/www/domaine1/.well-known
ln -s /var/www/certbot/.well-known /var/www/domaine2/.well-known
ln -s /var/www/certbot/.well-known /var/www/domaine3/.well-known
ln -s /var/www/certbot/.well-known /var/www/domaine2/.well-known
ln -s /var/www/certbot/.well-known /var/www/domaine3/.well-known
et je lance ensuite ceci pour créer les certifs :
certbot certonly --cert-name nom-de-mon-certif --webroot -w /var/www/certbot -d domaine1,domaine2,domaine3
Dernière édition: 08/05/2018 @ 18:35:34
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 08/05/2018 @ 19:32:35,
Par maxMerci pour le feedback.
Sinon, apt-get install certbot et roulez jeunesse
Je me suis amusé à créer des certificats wildcard (*.trololo.be) avec la certification via DNS. Très efficace (et relativement simple).
Tips: il faut créer un certificat multidomaine avec trololo.be et *.trololo.be si vous voulez utiliser ce certificat pour le domaine seul. Autre tuyau: wc.sdb.trololo.be ne sera pas validé par *.trololo.be. Le certificat n'est valide que pour un premier niveau. (A vous de créer *.sdb.trololo.be si vous avez plusieurs toilettes dans votre salle de bain).
Dernière édition: 08/05/2018 @ 22:50:11
Sinon, apt-get install certbot et roulez jeunesse
Je me suis amusé à créer des certificats wildcard (*.trololo.be) avec la certification via DNS. Très efficace (et relativement simple).
Tips: il faut créer un certificat multidomaine avec trololo.be et *.trololo.be si vous voulez utiliser ce certificat pour le domaine seul. Autre tuyau: wc.sdb.trololo.be ne sera pas validé par *.trololo.be. Le certificat n'est valide que pour un premier niveau. (A vous de créer *.sdb.trololo.be si vous avez plusieurs toilettes dans votre salle de bain).
Dernière édition: 08/05/2018 @ 22:50:11
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 08/05/2018 @ 22:39:44,
Par antpBah oui on utilise aussi certbot (mais sous Fedora, donc "yum install certbot") mais avec lighttpd c'est moins automatique qu'avec Apache ou Ngix, d'où les quelques commandes
mes programmes ·· les voitures dans les films ·· champion des excuses bidons
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 11/05/2018 @ 12:37:38,
Par zionTiens, ils acceptent les wildcards maintenant?
Je suis le Roy
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 11/05/2018 @ 17:13:42,
Par maxC'est assez récent, début mars:
wildcard et validation par DNS
https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579
wildcard et validation par DNS
https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579
Trololo
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 11/05/2018 @ 18:17:52,
Par zionAh mais c'est une excellente nouvelle ça mon bon monsieur!
Je suis le Roy
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 12/05/2018 @ 08:52:15,
Par antpDébut mars, évidemment, c'est fin février que je me suis "amusé" à faire marcher le truc avec mes nombreux sous-domaines Si j'avais su j'aurais attendu une semaine...
Dernière édition: 12/05/2018 @ 08:52:39
Dernière édition: 12/05/2018 @ 08:52:39
Let's Encrypt, comment on fait sous LInux, comment on fait ...
Publié le 13/05/2018 @ 11:03:20,
Par Jean-ChristophePour ce qui est de la validation par DNS, quand j'ai commencé à m'en servir il y a plus d'un an, c'était déjà possible
Mais les wildcard, c'est vraiment chouette pour les tests "grandeur nature".
Mais les wildcard, c'est vraiment chouette pour les tests "grandeur nature".