【问题标题】:SSL certificate unknown error when connecting to HTTP Tornado server连接到 HTTP Tornado 服务器时出现 SSL 证书未知错误
【发布时间】:2020-05-09 20:50:52
【问题描述】:

在我的应用程序中,我试图让 python tornado 服务器通过 websockets 与 javascript html 页面进行通信。我能够使用未加密的ws 连接使连接正常工作,但是当我尝试在这篇文章中实施解决方案时:

How to use secure websocket (wss) in Tornado

我得到错误:

WARNING:tornado.general:SSL Error on 10 ('::1', 57020, 0, 0): [SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] sslv3 alert certificate unknown (_ssl.c:727)

我正在使用自签名证书并尝试在 localhost 上运行它,然后再将它放到真实服务器上。我还确保在连接时将客户端代码更改为使用wss 而不是ws

如何在网页环境中修改我的 javascript 代码,以便即使服务器使用自签名证书也可以连接到服务器?

【问题讨论】:

    标签: javascript ssl websocket ssl-certificate tornado


    【解决方案1】:

    是的,您的证书是自签名的,这就是问题所在。您可以像这样将validate_cert=False 传递给websocket_connect

    ws_req = HTTPRequest("wss://127.0.0.1:8080/ws", validate_cert=False)
    ws = await websocket_connect(ws_req)
    

    (full example here)

    【讨论】:

    • 这似乎很明显,但值得注意的是,在生产中运行时不应跳过证书验证。换句话说,您可能希望确保 validate_cert 可以在开发环境和生产环境中轻松控制。
    • 这适用于 python 客户端连接,但我不知道如何在我的 html 页面上将其转换为 javascript。我尝试在此处遵循解决方案:link 但由于我没有在 Node 中运行代码,因此无法实现他们的解决方案。
    • 我建议在您的问题中添加一些javascript标签,然后吸引熟悉javascript的人的注意力。也许改写问题以强调您需要在浏览器环境中执行此操作(这是重要部分;服务器是龙卷风的事实并不是真正相关的细节)
    猜你喜欢
    • 2015-05-28
    • 2012-02-02
    • 2012-04-02
    • 2014-04-10
    • 1970-01-01
    • 2016-07-12
    • 2011-06-29
    • 2020-01-06
    • 2012-10-18
    相关资源
    最近更新 更多