由于 SSL 证书错误,无法使用 Streamlit 应用程序

问题描述 投票:0回答:2

我使用 Streamlit(在 Mac 上)构建了一个应用程序,该应用程序使用来自雅虎财经的数据,并且我正在尝试在本地运行它。上周它工作正常,但现在当我尝试运行它时,出现以下错误:

SSLError: HTTPSConnectionPool(host='finance.yahoo.com', port=443): Max retries exceeded with url: /quote/SLY (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1125)')))

这也阻止了我安装软件包,因此它完全停止了我的项目进度。在解决这个问题之前我无能为力。

'我以前从未真正开发过应用程序,所以我不知道在这种情况下该怎么办(我在这方面真的是菜鸟,所以请原谅我的无知)。我曾尝试在线研究这个问题,并相信我需要“添加证书”到我的证书列表中,但不明白如何做到这一点。我没有在我的代码中使用“请求”。事实上,我的代码实际上只是 VScode 中的一个简单脚本,我在终端中使用

streamlit run myapp.py
运行它。我曾考虑过禁用 SSL 认证,但显然这是一个坏主意(我什至不知道如何做到这一点)。

python ssl https streamlit
2个回答
0
投票

我会尽力大致展示步骤,如果您有问题,请随时询问。

第1步: 获取 SSL 证书。

您可以从任何值得信赖的网站轻松购买。

第2步: 在您的服务器上安装 SSL 证书。

执行此操作的具体步骤取决于您的托管环境和您拥有的证书类型。但不要担心他们中的大多数人都有如何添加它们的指南

例如,如果您只想在本地使用它,我相信有一个技巧,例如这个示例

第3步: 配置您的 Streamlit 应用程序以使用 SSL 证书。

.streamlit/config.toml file
中,添加以下行:

[server]
enableCORS = false
headless = true
port = 8080
enableXsrfProtection = true
certfile = /path/to/certificate.crt
keyfile = /path/to/privatekey.key

(我写了path,但这些应该是给定文件的路径)


0
投票

这对我有帮助(Mac OS 13.6.3):

  1. 运行此命令
pip install --upgrade certifi
  1. 如果没有帮助,请转到 Python 安装文件夹并打开
    Install Cerificates.command
    Cerificates.command
    。就我而言,它是:
/Applications/Python 3.11/Install Certificates.command

更多详情请参阅这篇文章

© www.soinside.com 2019 - 2024. All rights reserved.