Python WSS:chrome无法识别自动验证的证书

时间:2017-02-15 11:52:44

标签: python macos sockets ssl websocket

我在本地计算机上运行了一个webapp(客户端)和一个守护程序(服务器)并且它们共享消息。不使用安全套接字时一切正常。

我正在尝试实现WSS,但Chrome继续拒绝使用openssl生成的证书:

webSocket connection to 'wss://localhost:8190/Action
failed: Error in connection establishment: net::ERR_CONNECTION_CLOSED

到目前为止我已尝试过:

  • 我尝试在.crtKeyChain
  • 中添加Apple System中的Login个文件
  • 我尝试过生成新证书并再次执行所有操作。

对于websockets我正在使用 this library ,这就是我打开套接字的方式:

ssl_context = ssl.create_default_context(cafile='/localhost.crt')
st_server = websockets.serve(self.__on_receive, 'localhost', '8190',
                                 ssl=ssl_context)

任何帮助,都会非常感谢您对相关文档的参考。感谢

1 个答案:

答案 0 :(得分:0)

解决。我已将上述代码更改为:

ssl_context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
ssl_context.load_cert_chain(os.path.join('/', "localhost.crt"),
                            os.path.join('/', "localhost.key"))
st_server = websockets.serve(self.__on_receive, 'localhost', '8190',
                                     ssl=ssl_context)

基本上我没有正确加载证书。