Information concernant LET'S ENCRYPT


#1

Bonjour tout le monde,

Je vais essayer de faire simple :

-> J’ai donc mon cozy qui utilise LE pour générer mes certificats MAIS je souhaite installer une nouvelle machine avec un nouveau système (toujours debian :wink:) qui sera sur un autre sous domaine (machine2.cozy.fr).

Ma question est la suivante : Sachant que les certificats n’ont pas été générés avec ce sous domaine comment je peux faire pour générer un nouveau certificat sans que ceux de cozy soient cassés.

J’espère avoir été explicite.

Merci d’avance.

N.B. Je me permet de pinger @aeris ou @Clochix qui je pense pourrait m’éclairer sur le sujet.


#2

Les certificats sont autonomes, tu n’auras pas de problème à ce niveau.
Par contre un cozy n’est actuellement pas transférable d’un domaine à un autre, il faut conserver le même domaine si tu le change de machine.


#3

@aeris : Merci de ta réponse. Je peux donc demander un certicat LE pour mon cozy et un autre pour un autre service (autre VM) alors que les deux VM sont rattachés à la même adresse WAN (même box).


#4

Oui, tu peux demander autant de certificats que tu veux avec LE.
Ils ne sont pas rattachés à une machine précise.


#5

ok super ! merci @aeris [blablabla pour avoir 20 caractères]


#6

Question en dehors de COZY mais tu as peut etre une solution.

J’ai donc deux VM avec deux ip LAN différentes utilisant toutes les 2 Let’s encrypt. Mon soucis est que je n’ai qu’une seuil “box” et donc je ne peux attribuer qu’à une seul machine mon port 80. As tu une astuce pour que je ne soit pas obliger de ré-attribuer en permanence le port 80 à l’une ou l’autre de mes VM pour renouveler leur certificat.

Merci d’avance :wink:


#7

C’est la misère au niveau LE…
Faut obligatoirement mettre une unique machine en frontal qui fait l’enrollement des certificats (y compris le renouvellement tous les 90j), et les recopier ensuite sur les autres machines qui en ont besoin (via ssh/scp, histoire de pouvoir redémarrer les services après).
C’est tout sauf natif (et c’est incompatible avec coclyco par exemple)…
Et en terme de sécu, c’est l’horreur (accès root avec des clefs SSH sans mot de passe sur une machine exposée en DMZ sur le net :sob:)


#8

Ah OK pas simple du tout.
A ton avis, je peux utiliser la commande : cozy-coclyco renew de façon manuel sans que ça pose de problème ?


#9

Si la machine hébergeant cozy-coclyco est la machine définie comme étant celle en DMZ sur le port 80 oui.
Sinon non, ça ne fonctionne plus (LE a besoin de joindre le port 80 pour émettre les certificats).


#10

Pas de dmz sur ma vm cozy mais je me mettrerai une notification pour basculer temporaire le port 80… Juste le temps de faire mon renew de LE. Qu’en pense tu c’est contraignant mais ça me permet de tenir une sécurité correcte.

Merci de tes conseils !


#11

@aeris : je fais un peu doublon de ce topic : [COZY DRIVE] Utilisation avec port différent

Peux tu me dire, s’il te plaît comment je peux faire pour que ma demande de certificat entre mon cozy et mon autre service ne se mangent pas la queue ?

Merci :slight_smile:


#12

Comme dit avant, tu ne peux pas.

LE fait TOUJOURS la vérification sur le port 80, parce qu’il vérifie le domaine uniquement (il s’en fout du port, qui n’est pas contenu dans le certificat de toute façon).
Dès que tu as 2 machines derrière un NAT qui souhaitent émettre des certificats, tu as des problèmes avec LE et il faut passer par une gateway LE en frontal pour gérer tout ça (et faire donc du custom partout, adieu coclyco & cie…).

Et pour éviter la galère des ports, il est aussi conseillé du coup de mettre en DMZ un reverse proxy qui lui fera le dispatch vers la bonne machine en fonction du nom de domaine, tout en conservant le port 80/443 pour tout le monde.

Bref, dès que tu as 2 machines derrière un NAT qui doivent s’exposer au réseau, c’est la misère…


#13

ah j’avais mal compris … mais je ne peux pas générer un certificat avec mon sous domaine cozy : cozy.domaine.fr et mon autre sous domaine : autreservice.domaine.fr et le lier à cozy et à “service”. Les 2 auraient le meme certificat ? si j’ai bien compris on peut le faire avec un cron qui fait un scp non ?


#14

Tu peux faire un certificat contenant à la fois cozy.domaine.fr et autreservice.domaine.fr, ça s’appelle du SAN. Il faut que tu potasses la doc de certbot du coup pour faire ça.

Et à l’émission de ce certificat, LE vérifiera les DEUX domaines sur le port 80, il faut donc que la machine qui fera la demande de certificats réponde déjà correctement sur les 2 domaines, et donc déjà avoir un reverse proxy en place pour intercepter la validation ACME qui va arriver…

Bref, welcome en enfer :cry:


#15

Tu peux aussi envisager d’utiliser un certificat wildcard *.domaine.fr, mais du coup pareil, il te faut potasser la doc de certbot, et la validation passe cette fois nécessairement par une modification de la zone DNS (qui est tout sauf simple et intégrée à certbot…).
Et reste toujours le problème qu’au renouvellement, une seule machine peut récupérer le nouveau certificat et doit aller le déployer partout ailleurs où il y en a besoin via du scp/ssh (du coup en root avec une clef sans mot de passe, sinon ça ne serait pas marrant…).


#16

ah !!! j’ai envie de pleurer :cry:
Je pensais que je pouvais créer un certificat LE manuellement en ouvrant le port 880 sur mon cozy et en lui indiquant les sous domaine que je veux (certbot -d cozy.domaine.fr service.domaine.fr …) et faire le renew du certificat manuellement après (avec un scp du certificat manuellement aussi)

edit : mon hébergeur me propose un certificat SSL … Pense tu que ça solutionnerait le problème ?


#17

Non, la validation ACME du domaine par LE se fait uniquement sur le port 80.

S’il t’offre un wildcard, oui. Mais vu le prix des wildcards, je ne pense pas que ça soit le cas…
Et même les certificats SAN sont généralement payants…


#18

voila ce que j’ai ! et il m’a fait télécharger une private_key.key


#19

Tu peux toujours tenter, mais un wildcard gratos, ça serait hyper étonnant quand même :thinking:


#20

Ah tient si, chez 1&1 ils viennent d’ajouter le wildcard !