如何处理Unable to get Local Issuer Certificate

Unable to get Local Issuer Certificate"错误通常在使用Python的requests或urllib等库进行HTTPS请求时出现,它表示在进行SSL证书验证时未找到本地证书颁发者。这种情况可能发生在服务器证书链上的某个中间证书或根证书不在本地系统的CA(Certificate Authority)证书库中。

参考原文:

https://www.howtouselinux.com/post/exploring-unable-to-get-local-issuer-certificate

要处理这个错误,可以尝试以下方法:

1. 更新CA证书: 从操作系统或Python本身更新CA证书库。这样可以确保系统能够正确验证服务器证书。

2. 使用verify参数: 在requests中,你可以使用verify参数指定自定义CA证书的路径。首先,从浏览器导出服务器证书链中的根证书,并将其保存为.pem格式。然后将路径传递给verify参数。

代码语言:python
代码运行次数:0
复制
Cloud Studio 代码运行
import requests

cert_path = '/path/to/root_ca.pem'

response = requests.get('https://example.com', verify=cert_path)

3. 禁用证书验证: 在测试或特定情况下,你可以选择禁用证书验证。但请注意,这样做会使连接变得不安全,并不推荐在生产环境中使用。

代码语言:python
代码运行次数:0
复制
Cloud Studio 代码运行
import requests

response = requests.get('https://example.com', verify=False)

4. 检查网络代理: 如果你的网络使用代理,确保代理配置正确,并不会干扰SSL证书验证。

请注意,忽略证书验证或使用自定义CA证书都是暂时解决方案,不推荐在生产环境中长期使用。在生产环境中,请确保服务器证书的合法性和正确性,并正确配置SSL证书验证。这样可以确保数据传输的安全性和完整性。

我们整理了一份Linux学习的pdf文件,放在下面的路径,可以自提:

https://www.howtouselinux.com/post/linux-commands-for-linux-beginners-cheat-sheet