python - 如何在 Python 中更新 SSL 证书?
问题描述
我正在运行 python 3.9.1 我有一些 Django Admin Actions 可以创建然后下载一些 PDF。在我的本地机器(Windows 10)上运行它时,我最近开始收到以下错误消息:SSL:CERTIFICATE_VERIFY_FAILED] 证书验证失败:证书已过期(_ssl.c:1123)
关于如何处理这个问题的任何想法?Django 应用程序在服务器上完美运行,问题仅在我的本地主机上。
解决方案
就我而言,我正在与 IoT(物联网)设备 API 进行交互,并且拥有过期的 LetsEncrypt 证书。我在以下位置下载了新的 LetsEncrypt 证书:https ://valid-isrgrootx1.letsencrypt.org/
更多解释:
我的错误发生在从 IoT Web 服务器请求 API 信息的 Windows Python 客户端上。我通过查看 Windows 中的现有证书日期确定了哪个客户端证书已过期:
- 以管理员身份打开 Powershell,然后: Get-Childitem cert:\LocalMachine\root |format-list
过期的证书归 LetsEncrypt 所有。有关过期证书的更多信息:https ://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/ 。
就我而言,LetsEncrypt 根证书于 9 月底到期,并在未来被更新的证书所取代。要实施新证书,请访问使用来自失败客户端的该证书的任何网页。对于 LetsEncrypt,请访问他们的证书演示页面:https ://valid-isrgrootx1.letsencrypt.org/,您的证书存储将自动更新。
推荐阅读
- ios - 更改我的 ios 应用程序的包标识符
- elasticsearch - Elasticsearch 对于“浮动”类型没有按预期工作
- mysql - 如何删除mysql中的所有外键
- mysql - 按特定列及其一天中的频率计数按顺序获取结果
- xamarin.forms - Xamarin Forms 中的简单 Firebase 身份验证问题
- android - Camerax 在服务中运行。如何在前台服务中获取生命周期所有者或在没有它的情况下运行?
- r - 聚类方法推荐
- image - 无法使用 Flutter 通道共享文件 - 缺少插件异常
- ios - 有什么方法可以快速从 vImage_Buffer 获取像素格式信息?
- mysql - WSO2 将默认数据库更改为 MySql