Encryptons la validation de certbot sur HTTPS

16

À partir des documents du plugin Certbot Webroot

Le plugin webroot fonctionne en créant un fichier temporaire pour chacun de vos domaines demandés dans ${webroot-path}/.well-known/acme-challenge. Ensuite, le serveur de validation Let's Encrypt effectue des requêtes HTTP pour valider la résolution du DNS pour chaque domaine demandé sur le serveur exécutant certbot.

Sur un serveur domestique privé, le port 80 est désactivé, c'est-à-dire qu'aucune redirection de port n'est activée dans le routeur. Je n'ai aucune intention d'ouvrir ce port.

Comment puis-je dire à certbot que le serveur de validation ne doit pas faire de requête HTTP, mais une requête HTTPS (port 443), pour valider la propriété du domaine?

Le serveur de validation ne devrait même pas avoir besoin de valider le certificat du serveur domestique, car il utilise déjà HTTP par défaut. Je pourrais avoir un certificat auto-signé ou le certificat qui doit être renouvelé, mais cela ne devrait pas avoir d'importance.

Actuellement, je suis dans la situation où je dois activer le transfert du port 80 ainsi qu'un serveur sur celui-ci afin de créer / renouveler des certificats. Cela ne me permet pas d'utiliser un cronjob pour renouveler le certificat. Eh bien, avec suffisamment de travail, ce serait le cas, mais j'ai déjà un serveur qui écoute le 443, qui pourrait aussi faire le travail.

Daniel F
la source

Réponses:

8

Comme indiqué dans https://community.letsencrypt.org/t/shouldnt-verification-via-dns-record-be-a-priority/604/47, le programme de mise à jour letsencrypt.sh prend en charge la validation via DNS. Peu de scripts de mise à jour semblent l'avoir implémenté. Cependant, la méthode HTTP est la plus simple à implémenter pour la configuration initiale.

Le script dont vous disposez peut utiliser TNS SNI ou Preuve de possession d'une clé antérieure pour les renouvellements. Les spécifications peuvent être trouvées sur https://tools.ietf.org/html/draft-ietf-acme-acme-01#section-7.5 . Si tel est le cas, vous n'aurez pas besoin d'activer HTTP.

BillThor
la source
Merci, j'ai oublié la vérification basée sur DNS. Il a été relativement difficile de trouver des informations à ce sujet, car les documents le mentionnent à peine. Il n'y a pas de crochet pour Namecheap, je vais donc essayer de l'implémenter maintenant et vérifier comment cela fonctionne. J'accepte la réponse si cela fonctionne comme prévu, mais cela peut prendre un certain temps car il n'y a actuellement aucun domaine à renouveler. Sinon, je devrai faire cuire la commande --webroot dans le serveur afin que le serveur agisse comme un wrapper qui peut être créé en cronjob.
Daniel F
Juste vérifié, l'API de Namecheap est assez mauvaise (écraser TOUS les enregistrements pour en ajouter ou en modifier un), DNS n'est pas une option dans ce cas. J'utilise également d'autres bureaux d'enregistrement, ce qui complique les choses (gestion des clés API). La clé API de Namecheap vous donne même un accès pour enregistrer de nouveaux domaines ou transférer des domaines, ce n'est pas sûr en tant que FK.
Daniel F
@DanielF Je m'attends à ce qu'aucune validation DNS ou HTTP ne soit utilisée pour le renouvellement. Aucun n'est nécessaire car vos serveurs doivent passer TLS SNI pour le certificat existant et la demande peut être signée avec le certificat existant. L'un ou l'autre devrait suffire. DNS et HTTP sont des méthodes raisonnables pour s'inscrire. Vous devriez disposer de 30 jours pour résoudre les problèmes lorsque votre premier certificat doit être renouvelé.
BillThor