正如评论中已经指出的那样:从SSLLabs报告中可以看出,该网站的SSL实施不正确。该报告中有关您的问题的主要部分是:
该服务器的证书链不完整。等级上限为B。
这意味着服务器没有发送验证证书所需的完整证书链。这意味着您需要在验证时自行添加丢失的证书。为此,您需要为丢失的链证书C = US,O = DigiCert Inc,OU = www.digicert.com,CN = DigiCert SHA2 High Assurance Server CA以及根CAC = US,O = DigiCert Inc,OU = www.digicert.com,CN = DigiCert高保证EV根CA信息文件my_trust_store.pem
,然后您可以调用:
requests.get("https://...", verify='my_trust_store.pem')
这不适用于普通的叶子证书。由于Python的SSL堆栈基于OpenSSL,并且OpenSSL期望信任存储区中只有受信任的证书颁发机构(即给出verify
),而服务器证书不是CA证书,因此它无助于将其添加到信任存储区中。