【问题标题】:jupyter notebook stop SSL errorjupyter notebook 停止 SSL 错误
【发布时间】:2018-08-23 18:50:16
【问题描述】:

我以非 root 用户身份在 ubuntu 16.04 docker 容器内运行 jupyter 笔记本,并通过 .pem 文件配置 SSL。我的问题是,我无法执行jupyter notebook stop $port 命令来停止正在运行的服务器。

我通过执行 sudo HOME=/home/seiji -u seiji jupyter notebook 来更改 HOME 环境变量(它被改写为 seiji)来启动笔记本。

我可以通过以用户 (seiji) 身份运行它并输入 JUPYTER_RUNTIME_DIR 环境变量来执行通常的 jupyter notebook list 命令,jupyter 在该环境变量中查找包含服务器信息的 json 文件。例如:sudo JUPYTER_RUNTIME_DIR=/jupyter/runtime -u seiji jupyter notebook list 正确返回: https://localhost:8888/ :: /jupyter/notebooks(我按照通常的方式在配置文件中指定运行时目录)。

我的问题是,我不知道如何以类似的方式执行jupyter notebook stop 8888。如果我按原样运行它,它会以 root 身份运行并告诉我There are no running servers。如果我以user:seiji 运行它,我会遇到 SSL 问题。如:

> sudo JUPYTER_RUNTIME_DIR=/jupyter/runtime -u seiji jupyter notebook stop 8888 

返回错误。它开始:Shutting down server on port 8888 ...,然后打印以下内容:

SSL 错误 10 ('::1', 8888, 0, 0):[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:645)

我的猜测是它尝试使用“http”地址而不是“https”来访问服务器,但我不知道如何更改它。

我还尝试传递环境变量JUPYTER_CONFIG_DIR,其中包含列出.pem 文件位置的配置文件,其中c.NotebookApp.certfile = u'/jupyter/certs/mycert.pem' 行。当使用--certfile=[location] 从 cmdline 运行时,我也尝试过显式输入证书的位置,但似乎这被忽略了。有人有什么想法吗?

【问题讨论】:

标签: python docker ssl jupyter-notebook jupyter


【解决方案1】:

如果 Jupyter 使用的任何 SSL 库都无法验证您的证书,则可能会发生这种情况(我认为随着时间的推移,细节已经发生了一些变化)。如果证书是自签名的,这很常见 - 默认证书存储可能无法验证您的颁发者。我目前用我的 Jupyter 设置脚本做这样的事情:

cat mycert.crt | openssl x509 -inform DER >> "$(python -c 'import certifi; print(certifi.where())')"

我相信如果您已经拥有 PEM 形式的证书,那么您只需要:

cat mycert.pem >> "$(python -c 'import certifi; print(certifi.where())')"

然后像这样开始:

SSL_CERT_FILE=$(python -c 'import certifi; print(certifi.where())') jupyter notebook &

同样停止:

SSL_CERT_FILE=$(python -c 'import certifi; print(certifi.where())') jupyter notebook stop

我使用certifi 位置和环境变量的原因是certifi 似乎是最受欢迎的包,并且环境设置似乎受到其他库的尊重(包括requests 和内置SSL模块)。

同时使用此更新文件启动服务器的原因是笔记本可以自己连接到服务器(例如,用于自省)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2017-11-05
    • 2016-06-23
    • 2019-09-08
    • 1970-01-01
    相关资源
    最近更新 更多