Forum Linux.debian/ubuntu nat et https

Posté par  .
Étiquettes : aucune
0
15
déc.
2005
Bonjour,
Je cherche à mettre en place sur mon laptop une solution de configuration automatique de réseau.
Je me suis appuyé pour cela sur les journaux :
http://linuxfr.org/~artefact/16564.html
et http://linuxfr.org/~artefact/16564.html
Tout est ok pour les couches basses et cela fonctionne parfaitement.

Par contre pour les couches hautes j'ai un problème, et plus particulièrement pour https. Je ne voulais pas mettre de proxy sur ma machine, mais juste utiliser iptables, comme le suggère un des commentaires :
j'ai donc créé les règles iptables suivantes pour rediriger automatiquement mes requêtes http et https vers le proxy de ma boîte (dont je ne connais pas les caractéristiques).

/sbin/iptables -t nat -F
/sbin/iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 198.XXX.XXX.XXX:8080
/sbin/iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to-destination 198.XXX.XXX.XXX:8080

la règle pour HTTP fonctionne très bien, et je n'ai plus besoin de configurer de proxy dans mon navigateur pour atteindre les sites du dehors.
Par contre pour HTTPS cela ne fonctionne pas.
Par exemple la commande :
$ wget https://www.linuxfr.org
--10:46:57-- https://www.linuxfr.org/
=> `index.html.1'
Resolving www.linuxfr.org... 212.27.33.225
Connecting to www.linuxfr.org|212.27.33.225|:443... connected.
OpenSSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Unable to establish SSL connection.

Quelqu'un aurrait une idée du problème ? Est il possible de résoudre le problème sans passer par un proxy locale ? Par avance je vous remercie et à bientôt...
  • # Re.

    Posté par  . Évalué à 3.

    C'est complétement logique, et tu ne pourras pas avoir d'autre comportement.
    Effectivement, lorsque tu dis à ton navigateur de te connecter en SSL à un site, la première chose que ce dernier va faire est négocier le chiffrement, or le squid/c'quetuveux de ta boite ne cause que l'HTTP, donc il va pas être fichu de répondre au "handshake SSL".

    En temps normal, le HTTPS over proxy se passe de la façon suivante:

    1/ Le navigateur se connecte au proxy et utilise la méthode HTTP Connect pour demander à être connecté au site https://chose.com

    2/ Le proxy accepte et ouvre un bête tunnel entre chose.com:443 et ta machine

    3/ Ton navigateur débute alors la négociation SSL puis la navigation en elle même via ce tunnel.

    Si tu réfléchis deux secondes au proto HTTPS, tu te rendras rapidement compte qu'il n'y a pas de possibilité de faire du proxying HTTPS transparent à cause des mecanismes de chiffrement asymétriques.
    • [^] # Re: Re.

      Posté par  . Évalué à 1.

      C'est bien cela qui me manquais, ne pas connaître le proto HTTPS...
      Bah tant pis je vais passer par une solution TinyProxy que je trouve moins élégante (et un peu plus complexe à mettre en oeuvre).
      Merci de tes connaissances.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.