【问题标题】:ignore-certificate-errors + headless puppeteer+google cloud忽略证书错误 + 无头 puppeteer + 谷歌云
【发布时间】:2019-03-17 13:40:56
【问题描述】:

我尝试访问的网站有 ssl 证书错误

我正在使用这个版本的 puppeteer "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证书,它提到了这一点。

并非所有网络浏览器都信任该证书。你可能需要 安装中间/链证书以将其链接到受信任的根 证书。了解有关此错误的更多信息。您可以通过以下方式解决此问题 按照适用于您的 DigiCert 的证书安装说明 服务器平台。注意中间部分 证书。

当我使用旧版本的 puppeteer 时,我在 本地 也遇到了问题。 我看到了完全相同的错误

'TimeoutError: Navigation Timeout Exceeded:'

更新到最新版本的 puppeteer 修复了只在本地运行 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

【问题讨论】:

  • 天哪!你的配置救了我的命。 2 天,我试图让剧作家作品从 docker 到我当地的自我认证网站。我必须阅读 chrome 文档来搜索“-ignore-certificate-errors-spki-list”并到达这里。这应该在剧作家和傀儡文档中寻求帮助

标签: ssl-certificate google-cloud-functions chromium puppeteer headless


【解决方案1】:

--ignore-certificate-errors-spki-list 实际上接受公钥哈希白名单忽略证书相关错误。所以它像这样使用:--ignore-certificate-errors-spki-list=jc7r1tE54FOO=

Chromium doc

【讨论】:

    【解决方案2】:

    只需在LaunchAsync 构造函数中转入.IgnoreHTTPSErrors = True

    例子:

    await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
    var browser = await Puppeteer.LaunchAsync(new LaunchOptions()
    {
        Headless = true,
        IgnoreHTTPSErrors = true
    });
    

    【讨论】:

      猜你喜欢
      • 2018-01-12
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 2016-05-23
      • 2015-09-26
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多