cherche script faisant une connexion http avec upgrade tls (pour pomper)

Le
Thomas Harding
Bonjour,
voilà mon problème:
je me heurte à un serveur http un peu particulier, qui refuse de
fonctionner directement en TLS, mais qui accepte les connexions de type
upgrade (cad qu'on commence en clair avec un :
OPTIONS * HTTP/1.1
Connection: Upgrade
Upgrade: TLS/1.0

le serveur répond:
HTTP/1.1 101 Switching protocols
etc.)

et là, on commence à causer en tls :)


Q: comment commencer en clair et continuer en tls ?

J'ai l'intuition qu'il faut passer par 2 fsockopen et un
stream_copy_to_stream, mais je n'arrive pas à me figurer le processus
exact.

Si quelqu'un a déjà fait ce genre de truc, et est prêt à me laisser
pomper, ou a des indications à me donner, je suis preneur !

--
Thomas Harding
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
ftc
Le #864339
Bonjour,
voilà mon problème:
je me heurte à un serveur http un peu particulier, qui refuse de
fonctionner directement en TLS, mais qui accepte les connexions de type
upgrade (cad qu'on commence en clair avec un :
OPTIONS * HTTP/1.1
Connection: Upgrade
Upgrade: TLS/1.0

le serveur répond:
HTTP/1.1 101 Switching protocols
etc.)

et là, on commence à causer en tls :)


Ca ne va peut être pas répondre à ta question mais la librairie Curl est
capable de faire ce genre de négociations.

Xavier Garreau
Le #859495
je me heurte à un serveur http un peu particulier, qui refuse de
fonctionner directement en TLS, mais qui accepte les connexions de type
upgrade (cad qu'on commence en clair avec un :
OPTIONS * HTTP/1.1
Connection: Upgrade
Upgrade: TLS/1.0

le serveur répond:
HTTP/1.1 101 Switching protocols
etc.)

et là, on commence à causer en tls :)


Q: comment commencer en clair et continuer en tls ?


Si ça peut donner une indication, en C, on ouvre une connexion classique
(socket, connect, write, read, ...) et quand on reçoit la demande de
négotiation, on appelle SSL_Connect, et on discute ensuite en utilisant
SSL_Write et SSL_Read. S'il y a une renégotiation dans l'autre sens, on passe
par SSL_Close et on réutilise les fonctions standard.

En php: voir
http://fr3.php.net/manual/en/function.stream-socket-enable-crypto.php peut être ...

Curiosité malsaine: c'est quoi ton serveur http ?

a+
--
Xavier Garreau http://www.xgarreau.org/

Thomas Harding
Le #859497
Le 20-01-2006, ftc
Ca ne va peut être pas répondre à ta question mais la librairie Curl est
capable de faire ce genre de négociations.


Merci. J'ai jeté un oeuil là-dessus, et j'ai l'impression que ça va être
coton :)

--
Thomas Harding

Thomas Harding
Le #859137
Le 20-01-2006, Xavier Garreau
En php: voir
http://fr3.php.net/manual/en/function.stream-socket-enable-crypto.php peut être ...


Tiens, je ne l'ai pas trouvée, celle-là.
(PHP 5 >= 5.1.0RC1): Ouais, ben je vais attendre 2 ou 3 ans
pour l'implémenter :)

Curiosité malsaine: c'est quoi ton serveur http ?


Un serveur Internet Printing Protocol appelé "CUPS". Mais bon, j'ai eu
la solution par ailleur pour avoir la connexion directement en SSL
(suffit de mettre "SslPort tant" dans le fichier de conf), et ça roule
du feu de dieu :)

Tiens, hop, pub pour ma classe d'impression IPP (LGPL):

Je vais mettre ça en signature, d'ailleurs, bien que je sois de plus en
plus en lecture seule...

--
Thomas Harding

Poster une réponse
Anonyme