首页 文章

SSL:CERTIFICATE_VERIFY_FAILED证书验证失败

提问于
浏览
1
from lxml import html
import requests


url = "https://website.com/"
page = requests.get(url)
tree = html.fromstring(page.content)
page.content
  • SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:748)

我运行此脚本,但我收到此错误 . 我该怎么做?

2 回答

  • -1

    由于您的URL是“内部公司URL”(如评论中所述),我猜它使用的是自签名证书,或者是由自签名CA证书颁发的 .

    如果确实如此,您有两种选择:

    (1) 提供公司CA的路径(包括完整的中间证书链,如果有的话)到requests.get() call via verify参数:

    requests.get('https://website.lo', verify='/path/to/certfile')
    

    (2) ,完全禁用客户端证书验证(但这需要 beware of all the security risks ,就像一个简单的中间人攻击等):

    requests.get('https://website.lo', verify=False)
    

    在完整性方面,requests.request() docs中描述了相关的 verify 参数:

    verify - (可选)一个布尔值,在这种情况下它控制我们是否验证
    服务器的TLS证书或字符串,在这种情况下,它必须是路径
    到要使用的CA包 . 默认为True .

  • 3

    使用以下代码而不使用SSL

    from lxml import html
    import requests
    
    
    url = "http://website.com/"
    page = requests.get(url)
    tree = html.fromstring(page.content)
    page.content
    

相关问题