拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Playwright 经代理下载浏览器报 “self signed certificate in certificate chain“ 如何解决?

Playwright 经代理下载浏览器报 self signed certificate in certificate chain 如何解决【免费下载链接】playwrightPlaywright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.项目地址: https://gitcode.com/GitHub_Trending/pl/playwright在公司内网中Playwright 默认从 Microsoft 的 CDN 下载浏览器二进制文件直接访问通常被防火墙或代理拦截。按文档做法可以通过HTTPS_PROXY环境变量让 Playwright 走代理下载。但如果代理对流量做了拦截并使用企业自签的证书 authorityCA做中间人下载浏览器时会抛出Error: self signed certificate in certificate chain。此时的问题不在代理本身而是 Node.js 的 TLS 校验不信任代理的自签 CA——解决办法是先把企业根证书通过NODE_EXTRA_CA_CERTS环境变量注入再执行安装命令。本文依据 docs/src/browsers.md 中 Install behind a firewall or a proxy 一节给出完整的配置与验证路径。先确认下载流量走的是代理在修复证书问题前先确认安装命令确实经过代理。文档给出的方式是设置HTTPS_PROXY再执行install命令下文中https://192.0.2.1是文档中的示例代理地址替换为你所在公司的代理地址# bash HTTPS_PROXYhttps://192.0.2.1 npx playwright install:: Windows cmd set HTTPS_PROXYhttps://192.0.2.1 npx playwright install# PowerShell $Env:HTTPS_PROXYhttps://192.0.2.1 npx playwright installPython 语言绑定同理先安装包再经代理安装浏览器pip install playwright HTTPS_PROXYhttps://192.0.2.1 playwright installJava 与 C# 分别通过各自的 CLI 入口设置同样的环境变量# Java HTTPS_PROXYhttps://192.0.2.1 mvn exec:java -e -D exec.mainClasscom.microsoft.playwright.CLI -D exec.argsinstall# C# $Env:HTTPS_PROXYhttps://192.0.2.1 pwsh bin/Debug/netX/playwright.ps1 install如果命令运行到下载阶段即报出Error: self signed certificate in certificate chain说明代理在用自签 CA 拦截 HTTPS 请求进入下一步。用 NODE_EXTRA_CA_CERTS 指向企业根证书文档明确给出的修复方式是在安装浏览器之前把自定义根证书通过NODE_EXTRA_CA_CERTS环境变量传入。该变量的取值是企业代理 CA 根证书文件在本地磁盘上的路径按 shell 分别设置# bash export NODE_EXTRA_CA_CERTS/path/to/cert.pem:: Windows cmd set NODE_EXTRA_CA_CERTSC:\certs\root.crt# PowerShell $Env:NODE_EXTRA_CA_CERTSC:\certs\root.crt上面的/path/to/cert.pem、C:\certs\root.crt均为文档示例路径必须替换为你从公司 IT 处获取的根证书文件的实际位置.pem或.crt格式。设置完成后将代理变量与证书变量组合起来重新执行安装# bash证书变量 export 后与代理下载命令组合 export NODE_EXTRA_CA_CERTS/path/to/cert.pem HTTPS_PROXYhttps://192.0.2.1 npx playwright install:: Windows cmd set NODE_EXTRA_CA_CERTSC:\certs\root.crt set HTTPS_PROXYhttps://192.0.2.1 npx playwright install# PowerShell $Env:NODE_EXTRA_CA_CERTSC:\certs\root.crt $Env:HTTPS_PROXYhttps://192.0.2.1 npx playwright install证书校验通过后安装命令不再抛出Error: self signed certificate in certificate chain浏览器会完整下载到本机。验证浏览器是否安装成功安装完成后用install --list查看本机所有 Playwright 安装已拥有的浏览器npx playwright install --list# Python playwright install --list也可以直接查看浏览器缓存目录确认二进制已落盘。Playwright 把浏览器下载进 OS 特定的缓存目录Windows%USERPROFILE%\AppData\Local\ms-playwrightmacOS~/Library/Caches/ms-playwrightLinux~/.cache/ms-playwright文档给出的磁盘占用示例输出仅作示例实际数值随版本变化du -hs ~/Library/Caches/ms-playwright/* 281M chromium-XXXXXX 187M firefox-XXXX 180M webkit-XXXX相关的两个边界情况下载慢导致连接超时文档说明可以通过PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT环境变量以毫秒为单位调大连接超时例如PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT120000 npx playwright install。在 Linux 上用代理安装系统依赖install-deps如果以 root 运行需要把HTTPS_PROXY一起传进去否则 Playwright 尝试提权时不会把HTTPS_PROXY等环境变量传递给 Linux 包管理器文档给出的写法是sudo HTTPS_PROXYhttps://192.0.2.1 npx playwright install-deps。最后说明一个相邻但不同的场景如果公司是在内部制品库托管浏览器二进制而非走代理那属于PLAYWRIGHT_DOWNLOAD_HOST的使用范畴与本文的证书问题不是同一处理路径本文不展开。【免费下载链接】playwrightPlaywright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.项目地址: https://gitcode.com/GitHub_Trending/pl/playwright创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门