2016-10-31 34 views
7

Obecnie rozwijam aplikację Websocket w Docker Cloud. Kiedy przesunięcie mój wniosek i teraz mam zawsze ten komunikat o błędzie:Websockets nie działa w Chrome (wss): "uścisk dłoni został anulowany"

połączenie websocket nie powiodło się: otwarcie websocket uzgadniania został odwołany

gdy patrząc w ramce danych widzę pojedynczą klatkę z tych danych:

(Opcode -1)

Podczas badania tego problemu, wydaje się, że jest r z korzyścią dla SSL/Certyfikatów itp. Niektóre rozwiązania obejmują dodawanie samopodpisanych certyfikatów. Mylące jest to, że te same certyfikaty wydają się działać dla https, ale nie dla WSS:

HTTPS works fine

Także podczas testowania z innych przeglądarek, widzę, że Safari działa poprawnie. Tak więc jestem pewien, że serwer faktycznie działa z poprawnym certyfikatem na właściwym porcie. Tylko Chrome wydaje się mieć z tym problemy.

Znam niektóre rozwiązania na przepełnieniu stosu sugerujące ręczne dodanie certyfikatu, ale ponieważ działa on w Safari i nie jest certyfikatem samopodpisanym, zakładam, że powinien działać.

Odpowiedz

5

Sprawdzanie witrynę przed SSLabs pokazuje, że serwer nie dostarcza wszystkich potrzebnych części łańcucha certyfikatów ale zdobywa certyfikat łańcucha:

Łańcuch certyfikatów tego serwera jest niekompletny. Ograniczona do klasy B.
...
kwestie łańcuchowe Niekompletne
...
2 Extra pobrania - Miejmy Szyfrowanie Urząd X3

Po rozwiązany ten problem odpowiednio konfigurując serwer powinien działać w wszystkie przeglądarki. Obecnie może działać tylko z niektórymi przeglądarkami, tj. Jeśli przeglądarka zapisała w pamięci podręcznej brakujący certyfikat łańcucha z odwiedzin na innych stronach (takich jak Firefox) lub jeśli działa poprawnie na źle skonfigurowanych serwerach, pobierając brakujące certyfikaty (Chrome).