gpt4 book ai didi

python - jupyter notebook 停止 SSL 错误

转载 作者:行者123 更新时间:2023-12-04 12:03:41 24 4
gpt4 key购买 nike

我在 ubuntu 16.04 docker 容器中运行 jupyter notebook,作为非 root 用户,通过 .pem 配置 SSL文件。我的问题是,我无法执行 jupyter notebook stop $port命令停止正在运行的服务器。

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

我可以执行通常的 jupyter notebook list以用户身份运行命令 (seiji) 并输入 JUPYTER_RUNTIME_DIR 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 运行时显式输入证书的位置但似乎这被忽略了。有没有人有任何想法?

最佳答案

如果 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 模块)。
使用此更新文件启动服务器的原因是,笔记本电脑可以自己连接到服务器(例如,用于自省(introspection))。

关于python - jupyter notebook 停止 SSL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49291335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com