• Applications
  • [Discussion] Certificat SSL signé et gratuit avec Let's Encrypt

Bonsoir...
Je viens de régler le soucis en suivant ton conseil Theo64, en modifiant les chemins d'accès aux certificats ça marche nickel Merci !!
majaxx wrote:Salut , moi perso j'ai utilisé le tuto la smile
https://www.grafikart.fr/formations/ser … etsencrypt
Je te remercies pour ce tuto mais du coup je vais rester sur celui ci qui fonctionne, par contre le renouvellement auto du certificat via la commande :
/opt/letsencrypt/letsencrypt-auto renew
en l'adaptant pour qu'elle colle au tuto, ça pourrait marcher ?
8 jours plus tard
Bonjour à tous,

J'ai généré un certificat pour mondomaine.com que j'ai inclus sur tous mes sites, par contre quand j'essaye d'accéder à siteX.mondomaine.com mon navigateur me dit que
Le certificat n'est valide que pour mondomaine.com.
.

En gros je voudrais que mes sous domaines puissent utiliser le même certificat. Est-ce que c'est possible? Est-ce que c'est safe? Est-ce que j'aurai dû faire le certificat pour le domaine *.mondomaine.com plutôt que mondomaine.com?
@Salimèche

Un certificat doit être généré pour chaque domaine ET sous domaine. Letsencrypt ne fait pas à l'heure actuelle de wildcard (certificat pour domaine comprenant les sous domaines) Donc il faut que tu en génère un aussi pour par exemple sitex.nomdomaine.com
@Salimèche:

Letsencrypt ne gère pas les wildcard (certificat pour domaine et tout sous-domaine).

Donc deux solutions, sois tu crée un certificat par sous-domaine (plutôt chiant à maintenir).
Ou alors tu revoke celui ci, et créé un SAN (Subject Alternative Name), qui permets avec un seul certificat de gérer plusieurs sous-domaine (limité à 100, ça laisse de la marge).

Pour ce faire :
$ letsencrypt certonly --standalone --agree-tos -m tonmail@bidule.machin -d mondomain.tld -d www.mondomain.tld -d truc.mondomain.tld -d bidule.mondomain.tld
Ceci te génère un seul certificat, nommé comme le premier (ici live/mondomain.tld/*.pem) et utilisable sur tous les sous-domaines indiqué.
Il faut évidemment que tout les domaines pointent sur le même serveur. Et attention a bien prévoir les domaines et sous-domaines, à ma connaissance, impossible d'en ajouter après.


Tu pourras y vérifier les informations avec openssl :
$ openssl x509 -in /etc/letsencrypt/live/mondomain.tld/cert.pem -text
[...]
 X509v3 Subject Alternative Name:
                DNS:mondomain.tld, DNS:www.mondomain.tld, DNS:truc.mondomain.tld, DNS:bidule.mondomain.tld
[...]
Voila, en espérant t'aider.
Merci pour vos réponses.

J'ai opté pour la solution chiante à maintenir mais au moins je pourrai ajouter de nouveaux sous-domaines au fur et à mesure.

J'ai une autre interrogation qui ne concerne pas directement Let's Encrypt mais vous privilégiez plutôt l'authentification par htpasswd ou par application (quand elle le permet par ex : sickrage) ?
Parfois Letsencrypt accepte de te faire de nouveaux certificats en soudomaine et te crée Letsencrypt/live/monsoudomaine
et parfois ca passe pas.
Donc il faut se résoudre à faire un certificat avec sousdomaiane et mondomaine.ltd

Dans les 2 cas ça fonctionne , mais Letsencrypt est parfois capricieux.
Bonsoir,

J'ai testé d'installer le certificat, cependant Nginx ne veut pas démarrer.
La faut à rutorrent.conf qui avait deux lignes équivalentes. Une fois ce problème résolu, toujours plus aucun moyen de démarrer Nginx, ni bien sûr d'accéder à mon serveur.
Voici mon fichier error.logs :
[emerg] 21619#21619: BIO_new_file("/etc/letsencrypt/live/ns3311277.ip-5.135.161.eu/fullchain.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/ns3311277.ip-5.135.161.eu/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
Lorsque j'ai tout remis en place, j'obtiennes cette erreur :
[emerg] 25180#25180: bind() to 0.0.0.0:80 failed (98: Address already in use)
Résolue avec un coup de
fuser -k 80/tcp
Mais du coup, toujours pas de certificat
Tu utilises ton adresse serveur pour avoir un certificat Let's Encrypt ?
Oui.
Enfin SoYouStart m'a fait galéré puisque au début je mettais l'IP du serveur (enfin l'adresse sur laquelle est ruTorrent). J'ai compris qu'après que le nom qu'il lui fallait était "nsXXXX" (le NDD donné par SYS).
Mais ça n'a rien changé au final...
Bonsoir,

Je me pose une question vis à vis de l'ajout d'un nouveau sous-domaine sur Let's Encrypt.
J'ai intégré avec succès un certificat sur mes domaines / sous-domaine existants.
Or, j'ai rajouté ce soir l'excellent Tardistart (merci Jedediah) et voudrait y coller un SSL.

Il m'a semblé voir en avant dernière page de ce topic qu'il y avait 2 méthodes :

* Une "simple" mais demandant de connaître à l'avance tous ces domaines / sous-domaines : Ce n'est pas mon cas vu que j'ajoute souvent des choses et que le certificat est déjà généré
* Une plus embêtante ou un fait un certif par sous-domaine.

Dans ce second cadre, je voulais savoir si :

* Générer un certif spécial dédié à tardis.domain.tld n'allait pas foutre la merde avec mon autre certificat qui englobe le domaine + 5 sous-domaines
* Si pas de soucis, quelle commande dois-je passer pour générer le dit certificat ?

J'imagine qu'une fois généré, je n'ai qu'à spécifier le path du certif dans le Vhost de Nginx ?
@Oppenheimer

Aucun soucis pour générer un nouveau certificat pour ton nouveau sous-domaine.

Personnellement, pour générer un certificat, je le fait via le webserver de letsencrypt, cela fait un arrêt des services web de quelques secondes seulement, avec cette commande par exemple :
systemctl stop nginx && letsencrypt certonly --standalone --agree-tos -m tonmail@machin.tld -d tardis.domain.tld && systemctl start nginx
Personne n'aurait une solution ? :rollyes:
tomcdj wrote:Oui.
Enfin SoYouStart m'a fait galéré puisque au début je mettais l'IP du serveur (enfin l'adresse sur laquelle est ruTorrent). J'ai compris qu'après que le nom qu'il lui fallait était "nsXXXX" (le NDD donné par SYS).
Mais ça n'a rien changé au final...
tomcdj71 wrote:Personne n'aurait une solution ? :rollyes:
tomcdj wrote:Oui.
Enfin SoYouStart m'a fait galéré puisque au début je mettais l'IP du serveur (enfin l'adresse sur laquelle est ruTorrent). J'ai compris qu'après que le nom qu'il lui fallait était "nsXXXX" (le NDD donné par SYS).
Mais ça n'a rien changé au final...

Salut,

D'après ce que j'ai compris tu essayes de générer un certificat avec le reverse DNS par défaut de ton dédié. Je ne sais pas si ça peut fonctionner.
L'idéal serait que tu ais un nom de domaine, que tu fasses pointer un enregistrement vers ton dédié, une fois que cet enregistrement sera propagé que tu modifies le reverse DNS de ton dédié et qu'ensuite tu refasses le tuto avec ton domaine.
Merci pour la réponse.

Je crois que ça restera ainsi, trop compliqué pour moi ^^'
tomcdj71 wrote:Merci pour la réponse.

Je crois que ça restera ainsi, trop compliqué pour moi ^^'
Faut pas se décourager, c'est très simple

Avant de recommencer essaye un peu de te renseigner sur comment fonctionne DNS et SSL.

DNS est un protocole qui fait une correspondance entre un nom et une adresse IP.
SSL est un protocole qui permet (entre autre) d'identifier un correspondant (afin que personne ne se fasse passer pour le correspondant que tu cherches à joindre).
En gros la combinaison de ces deux protocoles te permettent d'être sûr de bien être sur mondedie.fr quand tu demandes la page https://mondedie.fr et pas sur un autre site.

Pour générer un certificat qui attestera que tu es bien sur le détenteur de tondomaine.com, Let's Encrypt fait servir des informations par ton serveur et demande à se faire servir ces informations par le serveur tondomaine.com (voilà pourquoi DNS est important).
Si les informations sont bien servies par le serveur tondomaine.com c'est que tu es bien l'auteur de la demande de certificat et le détenteur du nom tondomaine.com alors ton certificat te sera livré.

J'espère que ça aura un peu éclairci tout ça pour toi, j'ai omis plein de détails mais n'hésite pas à te documenter sur internet. Ces domaines sont passionnants.
J'ai tellement l'habitude à taper mes IP sur les ordis de mes amis (IP directe ruTorrent, Emby, Cakebox) que au final ça me ferait perdre du temps si j'avais un vrai ndd je suppose.
La seule chose qui m'aurait intéressé c'est pour enlever l'alerte sécurité quand je vais sur Emby avec Chrome (à cause de son certificat auto-signé ?), mais vu ma fréquence d'utilisation de Chrome ce n'est pas très important.

En tout cas merci pour m'avoir éclairé. J'ai mieux compris l'utilité des certificats, que je prenais jusqu'alors pour de "simples fichiers qui ne servaient à rien à part entacher une navigation".

Enfin du moins pour mes serveurs. Je suis bien content qu'il y en ait pour limiter les accès aux sites "attrape-couillons" qui pullulent un peu partout sur la toile
5 jours plus tard
xataz wrote:@Oppenheimer

Aucun soucis pour générer un nouveau certificat pour ton nouveau sous-domaine.

Personnellement, pour générer un certificat, je le fait via le webserver de letsencrypt, cela fait un arrêt des services web de quelques secondes seulement, avec cette commande par exemple :
systemctl stop nginx && letsencrypt certonly --standalone --agree-tos -m tonmail@machin.tld -d tardis.domain.tld && systemctl start nginx
Salut,
lorsque j'essaie de générer un nouveau certificat avec cette commande, j'ai un :
-su: letsencrypt : commande introuvable
Il faut remplacer letsencrypt par letsencrypt-auto ? Je ne sais pas trop quoi faire...
esox13 wrote:
xataz wrote:@Oppenheimer

Aucun soucis pour générer un nouveau certificat pour ton nouveau sous-domaine.

Personnellement, pour générer un certificat, je le fait via le webserver de letsencrypt, cela fait un arrêt des services web de quelques secondes seulement, avec cette commande par exemple :
systemctl stop nginx && letsencrypt certonly --standalone --agree-tos -m tonmail@machin.tld -d tardis.domain.tld && systemctl start nginx
Salut,
lorsque j'essaie de générer un nouveau certificat avec cette commande, j'ai un :
-su: letsencrypt : commande introuvable
Il faut remplacer letsencrypt par letsencrypt-auto ? Je ne sais pas trop quoi faire...
Bonjour,

T'est tu déplacé dans le répertoire de letsencrypt avant de taper la commande ? on dirai que su n'arrive pas à trouver une binaire qui est censé être dans le dossier.
Bonjour,
Oui carrément. J'ai même recloner le git dans dans /opt.
Mais quand je liste le contenu de /opt/letsencrypt il n'y a point de binaire letsencrypt, seulement un letsencrypt-auto
Alors pourquoi certains l'ont ?
esox13 wrote:Bonjour,
Oui carrément. J'ai même recloner le git dans dans /opt.
Mais quand je liste le contenu de /opt/letsencrypt il n'y a point de binaire letsencrypt, seulement un letsencrypt-auto
Alors pourquoi certains l'ont ?
Hum je viens de vérifier et point de binaire "letsencrypt" @xataz tu peut nous confirmer ça c'est bien lestencrypt-auto ? (ça me semble logique vu que c'est ce que j'utilise avec "--certonly" pour signe mer certificat comme indiqué)
Oui tu peux utiliser letsencrypt-auto.
C'est juste mon habitude, car letsencrypt est un alias vers mon conteneur docker de letsencrypt.
Super merci, je voulais être sûr
Yo,

Du coup question noob, avec Let's Encrypt on ne peut pas créer de virtual hosts en *.domaine.fr c'est ça ?
Ou alors il faut recréer un certif a chaque vhost est-ce bien cela ? ^^

Merci !
6 jours plus tard
Bonjour,

D'après ce que j'ai vu sur leur site, Let's Encrypt n'est plus en beta depuis le 16 avril. Je suppose qu'il n'y a plus besoin de renouveler les certificats tous les 90 jours.

Est-ce que cela change quelque chose au tuto ?
La sortie de beta n'implique pas ce changement. C'est toujours actif et il faut toujours que tu les renouvelles. Le tuto reste inchangé.

Tu peux "automatiser" le renouvellement des certificats en faisant comme indiqué ici sur le post de zataz : https://mondedie.fr/d/7415
Ok merci
Je vais aller voir ça
5 jours plus tard
Je coince si quelqu'un a une idée..
Failed authorization procedure. dl.domain.tld (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Could not connect to http://dl.domain.tld /.well-known/acme-challenge/vtnq7dd8qoaMAHucBB2JGKljRa8jFb4fg2drJdodLWc

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: dl.domain.tld 
   Type:   connection
   Detail: Could not connect to http://dl.domain.tld /.well-known
   /acme-challenge/vtnq7dd8qoaMAHucBB2JGKljRa8jFb4fg2drJdodLWc

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.
J'ai installer rutorrent avec le script de ex_rat , pour mes autres sous domaine , je n'ai pas eu de soucis.
Si tu viens de déclarer ton sous-domaine chez ton registar il faut attendre quelques heures (24 ?) que l'entrée se propage.
Le domain.tld est un exemple ! il te faut un nom de domaine puis un enregistrement a et des CNAME
Taguy wrote:Le domain.tld est un exemple ! il te faut un nom de domaine puis un enregistrement a et des CNAME
Saliméche wrote:Si tu viens de déclarer ton sous-domaine chez ton registar il faut attendre quelques heures (24 ?) que l'entrée se propage.
Merci, mon nom de domaine est bien propage car il marche bien en http et en autocert aussi et j ai modifier mon nom de domaine par "domain.tld" pour exposer mon problème.

Le soucis est quand j utilise letsencrypt sur ce sous domaine

J'ai ceci dans les logs :
# tail letsencrypt.log
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/dialog.py", line 1746, in _widget_with_string_output
    code, output = self._perform(args, **kwargs)
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/dialog.py", line 1541, in _perform
    args_file)
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/dialog.py", line 1502, in _handle_program_exit
    child_output_rfd)
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/dialog.py", line 1454, in _wait_for_program_termination
    child_output.strip()))
DialogError

Autant pour mii, j ai eu pareil pour sickrage
Taguy wrote:Autant pour mii, j ai eu pareil pour sickrage
Tu as réussi a t'en sortir ?
J'ai reinstall et reboot mais je ne pense pas qu'il faille en arriver la...
J'ai essaye de réinstaller et j ai un message un peu plus parlant
Domain: sickrage.domain.tld
   Type:   unauthorized
   Detail: The key authorization file from the server did not match
   this challenge
Je me demande si c est le bon webroot -path , j ai mis \var\www\sickrage.
In faut faire l install en standalone... : quand tu lance le script, tu choisis temporary web server (standalone)
Taguy wrote:In faut faire l install en standalone... : quand tu lance le script, tu choisis temporary web server (standalone)
En effet ça passe en standalone après la réinstallation de letsencrypt . merci bien

Du coup est ce que ça veux dire que je serais oblige d’arrêter nginx pour le renouvellement de ce certificat ?
Oui, mais ca prend deux secondes de le (re)faire (a moins d avoire une clé rsa de 4000000000...)
Merci pour ce tuto, la génération des certificats est impecc pour les domaines et les sous-domaines, je suis content de plus avoir à passer pas comodo, positive ssl et consorts tout en sortant de l'auto-signé.

Au passage, les réglages postfix et dovecot qui fonctionnent chez moi (avec le tuto dovecot/postfix hardware) sont les suivants:

postfix
nano /etc/postfix/main.cf

smtpd_tls_cert_file = /etc/letsencrypt/live/domain.tld/fullchain.pem
smtpd_tls_key_file  = /etc/letsencrypt/live/domain.tls/privkey.pem
dovecot
nano /etc/dovecot/conf.d/10-ssl.conf

ssl_cert = </etc/letsencrypt/live/domain.tld/fullchain.pem
ssl_key = </etc/letsencrypt/live/domain.tld/privkey.pem
18 jours plus tard
Ca pourrait être bien de rajouter (ou écrire de façon claire) qu'il ne faut pas selectionner le webroot mais utiliser un serveur web temporaire.
Vraiment super sinon, comme ça j'ai l'accès à mon dédié sans l'erreur certificat invalide et sans mdp avec un autre tuto.