1 votes

Qu'est-ce qui peut provoquer l'échec de https lorsque le protocole SSL n'est pas spécifié ?

J'ai un programme VBScript qui récupère une page Web sur un serveur que je ne contrôle pas. L'URL ressemble à quelque chose comme https://someserver.xxx/index.html . J'utilise ce code pour créer l'objet qui va chercher la page :

Set objWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")

Lorsque j'ai écrit mon programme, il n'a eu aucun problème pour récupérer cette page. Récemment, le serveur web qui sert cette page a subi une mise à jour. Maintenant, mon programme ne peut plus récupérer la page.

Quelques indices :

Indice 1. Je peux récupérer la page Web si j'utilise un navigateur (j'ai essayé Firefox, IE et Chrome).

Indice 2. Le code VBScript produit cette erreur :

Le message reçu était inattendu ou mal formaté.

Indice 3. Je peux récupérer la page Web à partir de la ligne de commande dans certains cas, mais pas dans d'autres :

curl --sslv3 -v -k 'https://someserver.xxx/index.html' # WORKS!
curl --sslv2 -v -k 'https://someserver.xxx/index.html' # WORKS!
curl -v -k 'https://someserver.xxx/index.html'         # FAILS
curl --tlsv1 -v -k 'https://someserver.xxx/index.html' # FAILS

Dans le cas où je ne spécifie pas de protocole, j'obtiens cette erreur :

* SSLv3, TLS handshake, Client hello (1):
* error:14077417:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert illegal parameter
* Closing connection #0

Dans le cas où je spécifie --tlsv1 Je reçois cette erreur :

* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS alert, Server hello (2):
* error:14094417:SSL routines:SSL3_READ_BYTES:sslv3 alert illegal parameter
* Closing connection #0

A. Quelqu'un a-t-il des suggestions ou des idées sur ce qui pourrait se passer du côté du serveur web (je suis incapable de parler aux administrateurs du serveur web pour savoir ce qu'ils ont changé).

B. Existe-t-il un moyen de modifier mon code VBScript pour contourner ce problème ? La version SSL peut-elle être forcée ?

1voto

Charles Leu Points 11

Apparemment, VB ne comprend pas/décode le protocole TLS complet, dans ce cas une alerte TLS (c'est-à-dire un message de type 0x15).

Je ne suis certainement pas un programmeur VB, mais je crois que vous pouvez définir une propriété (ce que j'ai appris en consultant http://www.chilkatsoft.com/refdoc/vbnetSocketRef.html ) : SslProtocol as String "SSL 3.0" (protocole SSL 3.0)

0voto

BillThor Points 27096

Il semble qu'ils aient diminué la sécurité dans leur mise à jour. La sécurité TLS semble ne pas fonctionner. Cela peut être le résultat d'un correctif de votre part qui vérifie la sécurité TLS par défaut ou la vérifie. Vous devriez être en mesure d'identifier la sécurité utilisée dans le navigateur après avoir récupéré une page. J'essaierais de contacter hostmaster@someserver.xxx, car ils n'ont probablement pas l'intention d'être non conformes à la sécurité TLS.

Si VBScript utilise le paramètre d'Internet Explorer, vous pouvez essayer de désactiver tous les chiffrages TLS dans IE. Cela devrait forcer VBScript à négocier avec un chiffrement SSLv3 ou SSLv2. Je commencerais par désactiver 3DES car il y avait (il y a) un problème de Windows lors de la connexion à des serveurs utilisant une implémentation sécurisée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X