我正在处理Python并测试来自https://badssl.com/证书部分的URL,除了https://revoked.badssl.com/和https://pinning-test.badssl.com/之外,所有无效URL都返回错误。他们正在用200 status codes作出反应。我希望有人解释为什么会发生这种情况,尽管页面显示了错误,比如NET::ERR_CERT_REVOKED和NET::ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN,前者和后者分别是错误的。
import requests
def check_connection():
url='https://revoked.badssl.com/' or 'https://pinning-test.badssl.com/'
try:
r = requests.get(url)
r.raise_for_status()
print(r)
except requests.exceptions.RequestException as err:
print ("OOps: Something Else",err)
except requests.exceptions.HTTPError as errh:
print ("Http Error:",errh)
except requests.exceptions.ConnectionError as errc:
print ("Error Connecting:",errc)
except requests.exceptions.Timeout as errt:
print ("Timeout Error:",errt)
check_connection()发布于 2022-10-18 12:09:35
您不会得到与"NET::ERR_CERT_REVOKED“消息类似的消息,因为requests只是一个HTTP请求工具;它不是一个浏览器。如果要查询OCSP响应程序以查看服务器证书是否已被吊销,则可以使用ocsp module进行此操作。有一个例子,here。
答案将类似于"NET::ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN";requests模块不是实现证书钉扎的高级工具。事实上,即使主要浏览器的开发构建也没有实现这一点;在https://github.com/chromium/badssl.com/issues/15中有一些关于这个问题的有趣讨论。
https://stackoverflow.com/questions/74110109
复制相似问题