通过 HTTPS 连接到 IPython,出现 SSL 错误

通过 HTTPS 连接到 IPython,出现 SSL 错误

此问题来自这里

我有一台运行 Ubuntu 12.04 的服务器。我已在其上安装了 IPython。现在,我想通过 HTTPS 访问 IPython。

我已完成以下步骤:

  • 使用 openssl 创建 SSL 证书:openssl req -x509 -nodes -newkey rsa:1024 -keyout ipython_cert.pem -out ipython_cert.pem

  • 在 IPython 中创建密码哈希:

    from IPython.lib import passwd

    passwd()

  • 创建笔记本配置文件:ipython profile create nbserver

  • 编辑 nbserver 配置文件:nano /.ipython/profile_nbserver/ipython_notebook_config.py

    c = get_config()
    c.IPKernalApp.pylab = 'inline'
    c.NotebookApp.certfile = u'/home/user/ipython_cert.pem'
    c.NotebookApp.ip = '*'
    c.NotebookApp.open_browser = False
    c.NotebookApp.password = u'XXX'
    c.NotebookApp.port = 4096
    c.NotebookManager.notebook_dir = u'/home/user/pynb'
    

接下来,我像这样启动 IPython 笔记本:ipython notebook --profile nbserver。现在,在笔记本电脑的浏览器中,我输入服务器的 IP 地址,然后输入端口号4096。IPython 抛出此错误:

SSL Error on 6 ('ip address', 54169): [Errno 1] _ssl.c:504: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request

这是为什么?我该如何解决这个问题?

答案1

通过在浏览器的地址栏中输入 IP 或域名,浏览器默认采用 HTTP。这就是您在这里遇到的情况,浏览器期望 HTTP 流量,但服务器在此端口上提供 HTTPS。因此浏览器抱怨,服务器的答案与预期形式存在根本偏差。

因此,解决方案是在https://浏览器地址栏中添加您的 IP/内部域名前缀。

相关内容