我尝试访问的网站存在ssl 证书错误
我正在使用此版本的操纵up "puppeteer": "1.13.0"
。
当我尝试await page.goto('http://bad_ssl_certificate_website')
时,仅在 google cloud 上出现超时错误。
TimeoutError:导航超时已超过:
但是,在MAC上本地正常运行。
我认为问题出在我网站的ssl-certificate-errors上,因为如果我尝试使用“ google.com”,则在两种环境下都可以正常工作。 我用https://www.sslshopper.com检查ssl证书,它提到了这一点。
并非所有Web浏览器都信任该证书。您可能需要 安装中间/链证书以将其链接到受信任的根 证书。了解有关此错误的更多信息。您可以通过解决此问题 遵循DigiCert的证书安装说明为您 服务器平台。注意有关中级的部分 证书。
当我使用旧版本的 puppeteer 时,我在本地上也遇到了问题。 我看到了完全相同的错误
“ TimeoutError:导航超时超出:”
更新到最新版本的puppeteer只能解决在本地运行puppeteer的问题,但不能解决在 google cloud
上运行的puppeteer的问题。这就是我设置木偶吃午饭的方式。
const browser = await puppeteer.launch({
headless: true,
ignoreHTTPSErrors: true,
args: [
"--proxy-server='direct://'",
'--proxy-bypass-list=*',
'--disable-gpu',
'--disable-dev-shm-usage',
'--disable-setuid-sandbox',
'--no-first-run',
'--no-sandbox',
'--no-zygote',
'--single-process',
'--ignore-certificate-errors',
'--ignore-certificate-errors-spki-list',
'--enable-features=NetworkService'
]
});
我发现了一些相关问题: https://bugs.chromium.org/p/chromium/issues/detail?id=877075
答案 0 :(得分:1)
--ignore-certificate-errors-spki-list
实际上接受公钥哈希的白名单,而忽略与证书相关的错误。因此它的用法类似于:--ignore-certificate-errors-spki-list=jc7r1tE54FOO=