Auteur Sujet: Let's encrypt en anycast  (Lu 4653 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 076
    • Twitter LaFibre.info
Let's encrypt en anycast
« le: 03 février 2017 à 14:02:51 »
Le cas qui est complexe pour la migration StartCom => Let's encrypt, ce sont ceux qui ont des serveurs web anycast (une même IP est annoncée par plusieurs serveurs distincts)

Un seul serveur va réussir le challenge de Let's encrypt...

Pour rappel : (Source : Wikipedia anycast)

- En unicast, il n'existe qu'une association entre une adresse réseau et le point d'arrivée final : chaque adresse de destination identifie de manière unique un seul receveur final. Exemple: Youtube

- En broadcast et multicast, il y a une association "de une à plusieurs" entre les adresses réseau et les points d'arrivées finaux : chaque adresse de destination identifie un ensemble de récepteurs finaux, sur lesquels toute l'information est répliquée. Exemple: Flux live de votre FAI

- En anycast, il y a aussi une association "de une à plusieurs" entre les adresses réseau et les points d'arrivées finaux : chaque adresse de destination identifie un ensemble de récepteurs finaux, mais un seul d'entre eux est choisi pour recevoir l'information à un moment donné pour un èmetteur donné. Exemple : DNS 8.8.8.8 de Google la même IP est utilise par de nombreux serveurs.

jack

  • Professionnel des télécoms
  • *
  • Messages: 1 674
  • La Madeleine (59)
Let's encrypt en anycast
« Réponse #1 le: 03 février 2017 à 14:11:33 »
En effet
Dans ce genre de cas, en fait, je pense que les certificats + clefs doivent être généré via un autre moyen, et propagé ensuite sur l'ensemble du cluster

Hugues

  • AS2027 MilkyWan
  • Modérateur
  • *
  • Messages: 12 423
  • Lyon (69) / St-Bernard (01)
    • Twitter
Let's encrypt en anycast
« Réponse #2 le: 03 février 2017 à 16:37:19 »
Ou alors mettre le challenge dans un montage distant/partagé, ça marche aussi.

corrector

  • Invité
Let's encrypt en anycast
« Réponse #3 le: 03 février 2017 à 17:32:55 »
Le cas qui est complexe pour la migration StartCom => Let's encrypt, ce sont ceux qui ont des serveurs web anycast (une même IP est annoncée par plusieurs serveurs distincts)

Un seul serveur va réussir le challenge de Let's encrypt...
J'avoue que je vois pas bien le souci...

Ne sachant forcèment pas quel serveur va être interrogé, il faut bien sûr pousser la config sur tous ceux qui sont susceptibles de l'être, ce qui de toute façon va être automatisé, puisque ces serveurs sont censés être substituables les uns aux autres.

vivien

  • Administrateur
  • *
  • Messages: 47 076
    • Twitter LaFibre.info
Let's encrypt en anycast
« Réponse #4 le: 03 février 2017 à 19:41:37 »
La problématique en anycast, en supposant que tu as des serveurs sur plusieurs continents, c'est que le challenge pour renouveler les certificats va échouer, vu que Let's encrypt vérifie que le serveur est joint depuis plusieurs endroits dans le monde et que un seul échec compromet le certificat.

Si c'est de l'anycast limité à un seul pays par contre, cela risque de fonctionner : c'est toujours le même qui sera interrogé. il suffit ensuite aux serveurs qui ne sont pas utilisés par les transits de récupérer la conf de celui qui est en visibilité des transits.

Hugues

  • AS2027 MilkyWan
  • Modérateur
  • *
  • Messages: 12 423
  • Lyon (69) / St-Bernard (01)
    • Twitter
Let's encrypt en anycast
« Réponse #5 le: 03 février 2017 à 20:01:45 »
c'est toujours le même qui sera interrogé.

Source ? Pour m'être tapé des pages et des pages de doc letsencrypt, je suis quasi sur du contraire.



La problématique en anycast, en supposant que tu as des serveurs sur plusieurs continents, c'est que le challenge pour renouveler les certificats va échouer

Transférer un fichier vers un autre serveur, c'est une opération relativement courante. Rsync toussa  ::)

vivien

  • Administrateur
  • *
  • Messages: 47 076
    • Twitter LaFibre.info
Let's encrypt en anycast
« Réponse #6 le: 03 février 2017 à 20:28:49 »
Anycast pour un opérateur national : Let's encrypt n'ayant pas de serveur pour vérifier le challenge dans le réseau de l'opérateur, ce sera toujours le même serveur qui est interrogé, celui qui est à Paris par exemple pour un réseau centré sur Paris. Les serveurs de province utiliseront Rsync pour récupérer le bon certificat.


Anycast sur plusieurs continent : Let's encrypt vérifie de plusieurs point du globe qu'il arrive sur le même serveur en interrogeant le nom de domaine : ce sera un échec systématique : aucun serveur n'arrivera à obtenir le certificat, il est donc inutile de faire du Rsync.

buddy

  • Expert
  • Abonné Free fibre
  • *
  • Messages: 15 094
  • Alpes Maritimes (06)
Let's encrypt en anycast
« Réponse #7 le: 03 février 2017 à 20:35:32 »
Anycast pour un opérateur national : Let's encrypt n'ayant pas de serveur pour vérifier le challenge dans le réseau de l'opérateur, ce sera toujours le même serveur qui est interrogé, celui qui est à Paris par exemple pour un réseau centré sur Paris. Les serveurs de province utiliseront Rsync pour récupérer le bon certificat.


Anycast sur plusieurs continent : Let's encrypt vérifie de plusieurs point du globe qu'il arrive sur le même serveur en interrogeant le nom de domaine : ce sera un échec systématique : aucun serveur n'arrivera à obtenir le certificat, il est donc inutile de faire du Rsync.
Bonjour,

il doit bien y avoir une solution puisque OVH (qui est sponsor au niveau maximum par contre) arrive à avoir le certificat Lets Encrypt sur le CDN en France et au Canada (par contre seulement 3 POP dans le monde et pas les 19 du CDN complet. (En théorie c'est ce qui est expliqué dans la newsletter, je n'ai pas testé.)


Hugues

  • AS2027 MilkyWan
  • Modérateur
  • *
  • Messages: 12 423
  • Lyon (69) / St-Bernard (01)
    • Twitter
Let's encrypt en anycast
« Réponse #8 le: 03 février 2017 à 20:51:04 »
Anycast pour un opérateur national : Let's encrypt n'ayant pas de serveur pour vérifier le challenge dans le réseau de l'opérateur, ce sera toujours le même serveur qui est interrogé, celui qui est à Paris par exemple pour un réseau centré sur Paris. Les serveurs de province utiliseront Rsync pour récupérer le bon certificat.


Anycast sur plusieurs continent : Let's encrypt vérifie de plusieurs point du globe qu'il arrive sur le même serveur en interrogeant le nom de domaine : ce sera un échec systématique : aucun serveur n'arrivera à obtenir le certificat, il est donc inutile de faire du Rsync.


Letsencrypt verifie depuis plusieurs serveurs, pas forcèment le plus proche !

Sinon tu sous entends que letsencrypt proposerait plusieurs challenges de plusieurs serveurs différents, sauf que non, seul un serveur est utilisé pour vérifier, la verification depuis de multiples serveurs est prévue mais pas encore en place.

jack

  • Professionnel des télécoms
  • *
  • Messages: 1 674
  • La Madeleine (59)
Let's encrypt en anycast
« Réponse #9 le: 03 février 2017 à 23:31:59 »
De toute manière, dans ce cas, tu utilises le challenge DNS, non ?

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Let's encrypt en anycast
« Réponse #10 le: 04 février 2017 à 19:16:47 »
Certbot (le bot de verif pour LetsEncrypt) utilise l'URI ".well-known" (rfc5785) en mode 'webroot':

il fait le contrôle en accédant en HTTP a "/.well-known/acme-challenge/..." qui est censé renvoyer les bonnes informations pour la vérification.

Dans le cas d'un anycast tu peux donc 'reverse proxyfier' tout les serveurs des différentes IPs unicast vers un seul serveur pour la verif certbot:

tu ajoute a chacun un truc du genre (code pour Apache:)
        ProxyPass /.well-known/acme-challenge/ http://ip/.well-known/acme-challenge/
        ProxyPassReverse /.well-known/acme-challenge/ http://ip/.well-known/acme-challenge/

quelque soit le serveur sur lequel le bot va tomber sa requête va être relayé toujours au même serveur en <ip> (sur lequel tourne le certbot) et la réponse revenir proprement aussi. apres tu distrib le certif a tout le monde.

En theorie on peut meme changer de port pendant le reverse proxy (http://ip:8080/.well-known/acme-challenge/) par exemple. ce qui permet d'avoir un serveur http minimum et dédié au certbot (idealement dans un container docker par exemple) sans consommer une IP public avec le port 80.

a tester.

Hugues

  • AS2027 MilkyWan
  • Modérateur
  • *
  • Messages: 12 423
  • Lyon (69) / St-Bernard (01)
    • Twitter
Let's encrypt en anycast
« Réponse #11 le: 04 février 2017 à 19:50:15 »
a tester.

Je le fais c'est bien pratique pour mettre du HTTPS derrière une s*** en nodejs qui a décidé de gérer tout seul son serveur web (coucou hastebin) :)