2014-07-25 4 views
1

토네이도 서버를 발행WSS 토네이도 연결

ssl_options = { 
     "certfile": "server.crt", 
     "keyfile": "server.key" 
} 
application=Application() 
server=tornado.httpserver.HTTPServer(application,xheaders=True,ssl_options=ssl_options) 
server.listen(tornado.options.options.port) 
tornado.ioloop.IOLoop.instance().start() 

JS 웹 소켓

webSocket = new WebSocket("wss://" + location.hostname + ":8888/socket"); 

연결하지 열려 있지, 오픈() 메서드가 호출되지 않으며, 오류 중 하나가 없다.

나는 다음과 같은 오류를 얻을 JS

webSocket = new WebSocket("ws://" + location.hostname + ":8888/socket"); 

에서 안전하지 않은 소켓 연결을 시도 :

Tornado: 

    [W 140725 11:35:35 iostream:845] SSL Error on 11 ('192.168.0.72', 54554): [Errno 1] _ssl.c:504: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request 


JS: 

    WebSocket connection to 'ws://192.168.0.72:8888/socket' failed: Connection closed before receiving a handshake response 

을 그러나 나는 토네이도에서 ssl_options을 제거하고, 시도하고 JS에서 안전하지 않은 연결하면, 그것은 잘 작동합니다.

Tornado: 

    server = tornado.httpserver.HTTPServer(application) 

JS: 

    webSocket = new WebSocket("ws://" + location.hostname + ":8888/socket"); 

문제점 및 진행 방법을 알 수 없습니다.

답변

1

브라우저에서 "이 자체 서명 인증서를 수락합니까?"대화 상자를 표시하려고하지만 websocket 연결이 보이지 않아 대화 상자를 볼 수 없습니다. 자체 서명 된 인증서와 함께 wss:을 사용하려면 먼저 해당 인증서가있는 일반 html 페이지를 방문하여 승인 할 수 있어야합니다.

+0

이미 인증서를 수락했는데 문제는 https 대신 http를 통해 웹 페이지에 액세스하려고 시도했기 때문입니다. 당신의 도움을 주셔서 감사합니다. – khizerbajwa

1

토네이도 오류 메시지는 HTTP 요청이 https 포트로 전송되고 있음을 의미합니다. http url에서 javascript를로드하고 https로 변경하여 문제를 해결했습니다.