SSL:WRONG_VERSION_NUMBER 设置 public Jupyter 服务器时

SSL: WRONG_VERSION_NUMBER when setting up public Juypter server

我正在设置一个 Juypter 服务器来托管我的笔记本。

/home/user/.jupyter/notebook_configuration.py

c.NotebookApp.certfile = u'/home/user/.jupyter/mycert.pem'
c.NotebookApp.keyfile = u'/home/user/.jupyter/mykey.key'

如果我 运行 在控制台上

jupyter notebook --ip="ip_address" --port=8000 --certfile=mycert.pem --keyfile mykey.key

服务器和证书有效!

但是,当我设置 DNS 条目并尝试路由到服务器时,我 运行 遇到了这个错误

SSL Error on 10 ('ip_address', 63748): [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:600)

怎么回事?

这个问题非常简单,但我花了比真正应该花的时间更长的时间才弄明白。

默认情况下,控制台为您提供的地址是要路由到的 https 地址。 https 有效。

但是如果你输入

your_url.com

它会带你到 http://your_url.com。如果您为您的服务器设置 TSL 证书,您的 http 路由将不再有效,并且 Jupyter 不会开箱即用地重新路由到 https

解决方法:改用 https

我的长期解决方案I ended up hosting my Jupyter notebook behind apache.