连接到google.com有一个名为HTTP严格传输安全(HSTS)的安全策略,这意味着Firefox只能安全地连接到它



使用selenium == 4.2.0运行测试脚本时,如下所示:

from selenium.webdriver import Firefox, FirefoxOptions
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.common.proxy import Proxy, ProxyType

options = FirefoxOptions()
service = Service()
options.headless = True
options.accept_insecure_certs = True 
proxy = Proxy({
'httpProxy': proxy_addr,
'sslProxy': proxy_addr,
'proxyType': ProxyType.MANUAL
})
options.proxy = proxy
wd = Firefox(service=service, options=options)
wd.execute("get", {'url': 'http://google.com'})

我得到以下错误:

连接到www.google.com时发生错误称为HTTP严格传输安全(HSTS(的策略,这意味着Firefox只能安全地连接到它。不能向添加异常访问此网站。请联系网站所有者,告知他们这个问题。此网站可能不支持TLS 1.2协议,这是Firefox支持的最低版本。启用TLS 1.0TLS 1.1可能允许该连接成功。

我认为问题是我使用的是在localhost上运行的代理。由于我在无头模式下使用浏览器并配置了accept_insecure_certs = True,我不知道如何找到解决此错误的方法。如果有人建议我还能做什么,我将不胜感激。

我假设您使用的是允许拦截TLS流量的MITM。如果是这样,那么这正是HSTS预加载旨在防止的情况;(

你的MITM会动态生成一个假证书,但因为它与浏览器中的HSTS预加载列表不匹配,所以这就是为什么你会收到一个错误(而不是一个询问你是否要继续的对话框(。

您可以通过配置代理来去除所有响应上的HSTS标头来绕过这一问题(查看您正在使用的特定MITM的文档(。