Lors de Safari se connecte très bien, mais en utilisant new WebSocket('wss://server/');
échoue complètement (renvoie un objet null
). Pire, il échoue silencieusement - pas d'erreurs dans traceback (un serveur web Eventlet personnalisé) ou dans la console d'erreur dans Safari.Comment déboguer Safari ne parvient pas à se connecter en toute sécurité à un WebSocket sécurisé
Chrome fonctionne correctement avec les hôtes sécurisé et non sécurisé.
Comment procéder pour le débogage ou la correction? Google est très court sur l'information.
Voici une trace de l'exécution d'OpenSSL à la place du serveur WebSockets et de voir ce qui se passe. Tout d'abord, est ici est Chrome (qui fonctionne) Sortie de débogage:
Using default temp DH parameters
Using default temp ECDH parameters
ACCEPT
SSL_accept:before/accept initialization
SSL_accept:SSLv3 read client hello A
SSL_accept:SSLv3 write server hello A
SSL_accept:SSLv3 write certificate A
SSL_accept:SSLv3 write key exchange A
SSL_accept:SSLv3 write server done A
SSL_accept:SSLv3 flush data
SSL_accept:SSLv3 read client key exchange A
SSL_accept:SSLv3 read finished A
SSL_accept:unknown state
SSL_accept:SSLv3 write change cipher spec A
SSL_accept:SSLv3 write finished A
SSL_accept:SSLv3 flush data
-----BEGIN SSL SESSION PARAMETERS-----
GIBBERISH HERE
-----END SSL SESSION PARAMETERS-----
Shared ciphers:CIPHERS_HERE
CIPHER is REDACTED
Secure Renegotiation IS supported
GET/HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: live.redacted.com:8443
Origin: http://redacted.com
Sec-WebSocket-Key1: 1 [ B l wA 3 e60 d9[ n0!>8384
Sec-WebSocket-Key2: 2 5 1 7p 17 64 3 9
Cookie: __key=value
et voici de Safari (qui ne fonctionne pas): Je pense
ACCEPT
SSL_accept:before/accept initialization
SSL_accept:SSLv3 read client hello A
SSL_accept:SSLv3 write server hello A
SSL_accept:SSLv3 write certificate A
SSL_accept:SSLv3 write server done A
SSL_accept:SSLv3 flush data
SSL_accept:failed in SSLv3 read client certificate A
ERROR
shutting down SSL
CONNECTION CLOSED
Safari a un problème avec nos certificats, mais un il ne révèle pas lors de l'utilisation de HTTP régulier.
Ah oui, c'était une autre chose dont je me souviens avoir eu affaire. Cependant, je suis surpris que vous n'obteniez aucun retour de votre serveur WebSockets dans ce cas. – kanaka
Eh bien, il ne recevait même pas la demande, car Safari fermait la connexion immédiatement après la poignée de main. Il n'est jamais arrivé sur le serveur WebSockets. –