📜  如何忽略 SSL 问题 (1)

📅  最后修改于: 2023-12-03 15:24:46.443000             🧑  作者: Mango

如何忽略 SSL 问题

在实际开发中,我们有时候需要访问一些不安全的 HTTPS 网站,但是由于 SSL 证书不被信任,会产生 SSL 异常。这时候我们需要忽略 SSL 问题,使得程序能够继续访问。

以下是几种常见的忽略 SSL 问题的方法。

方式一:忽略单个证书

可以使用 requests 库的 verify 参数来忽略单个证书。具体来说,我们可以将 verify 参数设为 False,这样就可以跳过 SSL 验证,从而忽略 SSL 问题。

import requests

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

需要注意的是,这种方法会导致程序无法检查证书是否有效,建议仅在开发时使用。

方式二:忽略所有证书

在全局范围内忽略所有 SSL 证书问题,可以使用以下代码。

import ssl

ssl._create_default_https_context = ssl._create_unverified_context

这样,所有 HTTPS 请求将默认忽略 SSL 证书问题。

需要注意的是,由于跳过了 SSL 验证,因此安全性会受到影响,开发人员需要自己评估使用场景。

方式三:添加信任证书

在某些情况下,我们需要能够检查证书而又不产生 SSL 异常。这时候,我们可以手动添加信任证书。

以下是添加信任证书的示例代码。

import requests
import certifi

response = requests.get('https://example.com', verify=certifi.where())
print(response.text)

certifi 是一个常用的 Python SSL 证书包。certifi.where() 返回该证书包的路径,可以用于在程序中添加自己信任的证书。

需要注意的是,添加信任证书需要谨慎,一定要确保自己信任的证书来自可信的证书颁发机构。否则,恶意证书可能导致安全问题。

总结

在实际开发中,我们需要根据具体情况选择合适的方法来忽略 SSL 问题。如果需要跳过 SSL 验证,请务必评估安全风险,并加强安全措施,以确保程序不受攻击。