通过 urllib 获取数据时无法获取本地颁发者证书
尝试使用 Python 的 urllib.request 包检索数据时,您可能会遇到以下错误:
certificate verify failed: unable to get local issuer certificate (_ssl.c:1045)
登录后复制
使用 HTTPS URL 时可能会出现此问题,因为它表示验证网站的 SSL 证书时出现问题。
要解决该错误,您已安装“Install Certificates.command”实用程序,可以帮助建立 SSL 证书的信任链。在此过程中会发生以下情况:
-
信任链建立: 连接到 HTTPS 网站时,您的浏览器或 Python 程序会检查网站的 SSL 证书以确保其真实性。该证书由证书颁发机构 (CA) 颁发,该机构是负责验证网站身份的受信任的第三方实体。
-
本地证书存储区:您的系统的默认证书存储区包含来自各个 CA 的可信根证书的集合。验证网站证书时,系统会检查本地存储中颁发 CA 的根证书。
-
缺少本地颁发者证书: 在某些情况下,颁发 CA 的根证书可能会未安装在本地商店中。这可能会导致验证过程失败,从而导致您遇到的错误。
-
安装证书.command:通过运行提供的命令,您可以从操作系统的默认来源。这可确保您的系统拥有必要的受信任根证书来验证您尝试访问的网站的 SSL 证书。
为了加深您对安全和证书的理解,您可以参考以下资源:
- [使用 SSL/TLS 的 HTTP 和 HTTPS 加密](https://www.internetsociety.org/resources/deploy360/security/http-https-encryption-ssl-tls/)
- [傻瓜式 TLS/SSL 证书](https://www.globalsign.com/en/information-center/certificate-guides/ssl-certificates-in-五分钟)
- [证书颁发机构 (CA)](https://www.digicert.com/learn/certificate-authority/)
以上是为什么在使用 urllib.request 时出现'无法获取本地颁发者证书”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!