我正在尝试使用https和安全websockets(wss://)运行聊天应用程序,但出现以下错误。 我正在使用自己创建的自签名证书。 如果我从chrome桌面访问我的网站 ,则可以使用。 如果我从chrome ios访问同一站点,则会收到以下错误消息。 另外,从chrome ios,我收到不可信证书的警告并接受它。 所以我想让它适用于Chrome ios。

[E 150516 14:01:56 http1connection:700] Uncaught exception
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/tornado/http1connection.py", line 691, in _server_request_loop
    ret = yield conn.read_response(request_delegate)
  File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 807, in run
    value = future.result()
  File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 209, in result
    raise_exc_info(self._exc_info)
  File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 810, in run
    yielded = self.gen.throw(*sys.exc_info())
  File "/usr/local/lib/python2.7/dist-packages/tornado/http1connection.py", line 166, in _read_message
    quiet_exceptions=iostream.StreamClosedError)
  File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 807, in run
    value = future.result()
  File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 209, in result
    raise_exc_info(self._exc_info)
  File "<string>", line 3, in raise_exc_info
SSLEOFError: EOF occurred in violation of protocol (_ssl.c:581)

这是我的代码

import tornado.ioloop
import tornado.web
import tornado.options
import tornado.httpserver
import os
import tornado.websocket

import ssl
ssl.PROTOCOL_SSLv23 = ssl.PROTOCOL_TLSv1

clients = []

class IndexHandler(tornado.web.RequestHandler):
  @tornado.web.asynchronous
  def get(request):
    request.render("index.html")

class WebSocketChatHandler(tornado.websocket.WebSocketHandler):
  def open(self, *args):
    print("open", "WebSocketChatHandler")
    clients.append(self)

  def on_message(self, message):        
    print message
    for client in clients:
        client.write_message(message)

  def on_close(self):
    clients.remove(self)

application = tornado.web.Application([(r'/wschat', WebSocketChatHandler), (r'/', IndexHandler)])

data_dir = '/home/bob'

#http_server = tornado.httpserver.HTTPServer(application)
http_server = tornado.httpserver.HTTPServer(application, ssl_options={
    "certfile": os.path.join(data_dir, "myselfsigned.cer"),
    "keyfile": os.path.join(data_dir, "myselfsigned.key"),
})

if __name__ == "__main__":
    tornado.options.parse_command_line()
    http_server.listen(443)
    tornado.ioloop.IOLoop.instance().start()

我正在运行python 2.7.9和龙卷风4.1。 我怀疑我必须给龙卷风打补丁,但我尝试过各种猴子打补丁,但都没有成功。 有人可以帮助我修补龙卷风,或提供有关解决此问题的详细步骤。 另外,我是SSL的新手,所以请像我5岁一样向我解释一下:)

非常感谢您的时间和耐心!

===============>>#1 票数:0

根据https://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/ ,以便在应用程序中使用自签名证书除了iOS上的Safari(包括Chrome)以外,您必须将证书安装为“配置配置文件”。

在服务器端记录的错误是无害的,不会在Tornado 4.2中详细记录。

  ask by Francis translate from so

未解决问题?本站智能推荐:

1回复

龙卷风WebSockets-InvalidStateError“仍处于连接状态”

我正在写一个Web应用程序,我想通过SSL通过Tornado WebSockets从客户端向服务器端发送JSON代码。 当我要建立连接时,Google Chrome在控制台日志中显示错误: 我的python服务器看起来像这样: 我的客户: 谢谢
1回复

无法让SSL在Tornado上运行

我正在尝试通过SSL实现hiroakis的项目( https://github.com/hiroakis/tornado-websocket-example )。 我进行了必要的更改(见下文),并将证书颁发机构的公共证书添加到Firefox的可信证书列表中。 当我打开https://lo
1回复

Tornado WebSocketHandler不会响应SSL请求

我有一个像这样初始化的Tornado HTTPServer: 它具有一个带有open()方法的WebSocketHandler。 当我尝试从Chrome 30控制台通过Javascript打开安全的网络套接字连接时,例如 连接未成功打开,没有日志输出,并且未调用WebSoc
2回复

Python 3.4 ssl.SSLEOFError:发生EOF违反协议(_ssl.c:1638)

我有一个项目,它通过SSL套接字将子进程stdin的PIPE的远程PIPE(在我的服务器上)连接到我的客户端。 我使用Python 3.4。 我的套接字(代码中的cSock)是SSL包装的,每次尝试打开Vim时都会遇到相同的错误。 这是我的代码: 这是我的接收和发射线程 这
2回复

Python龙卷风SSL WebSocket连接

我正在使用Python 3.5编码的websocket服务器。 这是提供我的网站实时信息所必需的。 我使用的“服务器”库称为tornado ( 版本4.5b2 ),用于处理websocket连接和http请求。 为了向后兼容(如果浏览器尚不支持websocket),我使用python库
1回复

python3 ftplib SSLEOFError(8,'发生EOF违反协议(_ssl.c:645)')

您好,我正在尝试使用被动模式和显式tls从简单的ftp文件zilla服务器中进行简单的读取和写入文件,我已对其文件zilla客户端进行了良好的设置。 我无法弄清楚在读取或写入时如何解决此错误。 执行诸如mkdir之类的其他命令的命令也可以正常工作 我正在Ubuntu 16.04上使用
1回复

Python龙卷风打开文件太多Ssl

如果我的龙卷风服务器上有很多连接,我在日志中会出错 并断开我的客户。 在Every Connect上龙卷风打开SSL证书文件? 龙卷风应用 从Django命令启动龙卷风服务器 为什么他要打开许多文件,在我看来需要在启动服务器和所有服务器中打开ssl。 Stack
1回复

龙卷风HTTPClient的SSL错误

我正在尝试使用龙卷风的http客户端获取URL。 我已经做过很多次了,但是这次我遇到了一个非常奇怪的SSL错误。 我尝试使用的端点没有有效的证书,但是curl调用上的-k仍然证明它有效。 我在网上找到的所有答案都只是建议将validate_cert设置为False(我已经在做)。
1回复

龙卷风https SSL错误

当我启动龙卷风https服务器时,系统会要求我输入PEM密码(该密码未设置,因此只需按Enter键即可)。 我按照以下说明生成了密钥: http : //www.thegeekstuff.com/2009/07/linux-apache-mod-ssl-generate-key-csr-
1回复

龙卷风MySQLDB SSL连接

我正在使用龙卷风,并使用MySQLDB连接到MySQL。 如何使用SSL连接到MySQL?