我使用 "Let"s Encrypt" 将我的网络服务器从 HTTP 更改为 HTTPS . Web 服务器包含一个 API,我有一个使用该 API 的 Python 应用程序。
在 Linux 下一切正常,但在 Windows 下,我在登录时收到以下消息。
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
我的想法是,未安装 SSL 证书。
所以我下载的“isrgrootx1.der”和“lets-encrypt-x1-cross-signed.der”都重命名为“*.cer”结尾。
然后我打开 Windows 控制台,然后运行:
certutil -addstore "Root" "isrgrootx1.cer".
certutil -addstore "Root" "lets-encrypt-x1-cross-signed.cer".
第二个命令失败,因为它不是根证书。 我的问题是:在哪个组中安装了“lets-encrypt-x1-cross-signed.cer”?
最佳答案
您不需要将“lets-encrypt-x1-cross-signed.cer”添加到您的 Windows 机器,因为它只是一个中间证书。而且您也不需要添加“isrgrootx1.cer”,因为 Let's Encrypt 证书链到“DST Root X3”,它已包含在 Windows 中。
很可能您的 Web 服务器未配置为发送中间证书。例如,如果您使用的是 Certbot,您将希望使用“fullchain.pem”而不是“cert.pem”来配置您的 Web 服务器。
关于python - 让我们加密证书,Python 和 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35031215/