Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

4 réponses
Avatar
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

4 réponses

Avatar
ftc
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.

Avatar
Xavier Garreau
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/

Avatar
Thomas Harding
Le 20-01-2006, ftc a écrit :
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

Avatar
Thomas Harding
Le 20-01-2006, Xavier Garreau a écrit:
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):
<URL:http://www.nongnu.org/phpprintipp/>

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

--
Thomas Harding