0

0

Playwright Python 中处理 HTTPS 证书错误的完整解决方案

花韻仙語

花韻仙語

发布时间:2025-12-26 13:33:27

|

448人浏览过

|

来源于php中文网

原创

Playwright Python 中处理 HTTPS 证书错误的完整解决方案

本文详解如何在 playwright(python)中正确配置 ignore_https_errors=true 以绕过 ssl 证书验证失败问题,并强调其适用场景、安全边界与最佳实践。

在使用 Playwright 进行自动化测试或网页抓取时,若目标网站使用自签名证书、过期证书或内部 CA 签发的非受信证书(例如开发环境、内网系统如 http://minha.anem.dz/pre_inscription),WebKit 或 Chromium 浏览器实例会因 SSL/TLS 握手失败而抛出如下错误:

playwright._impl._errors.Error: SSL peer certificate or SSH remote key was not OK

⚠️ 注意:该错误实际发生在 HTTPS 请求阶段(即使 URL 写的是 http://,但页面可能重定向至 https://,或资源加载了 HTTPS 子资源)。因此,仅修改 URL 协议无法根本解决。

✅ 正确解决方案:在 browser.new_context() 中启用证书忽略

关键在于将 ignore_https_errors=True 传入 new_context() 方法(而非 launch()),因为该参数控制的是上下文级网络请求策略,影响所有后续页面导航与资源加载:

import asyncio
from playwright.async_api import async_playwright, Playwright

async def run(playwright: Playwright):
    browser = await playwright.webkit.launch(headless=False)  # 也可用 chromium/firefox
    # ✅ 正确位置:在 new_context() 中设置 ignore_https_errors=True
    context = await browser.new_context(ignore_https_errors=True)
    page = await context.new_page()

    # 即使页面重定向到 HTTPS 或加载 HTTPS 资源,也不会中断
    await page.goto("http://minha.anem.dz/pre_inscription")

    # 可选:验证是否生效(检查控制台是否仍有证书警告)
    await page.screenshot(path="success.png")
    await browser.close()

async def main():
    async with async_playwright() as playwright:
        await run(playwright)

asyncio.run(main())

⚠️ 重要注意事项

  • ignore_https_errors=True 仅适用于调试与受控环境(如测试内网系统、本地开发服务器),绝不可用于生产环境或涉及用户敏感数据的场景,否则将导致中间人攻击(MITM)风险。
  • 该参数对 page.goto()、page.wait_for_response()、APIRequestContext 等所有上下文内网络操作均生效。
  • 若仍报错,请确认:
    • 是否误将 ignore_https_errors=True 错置于 browser.launch()(该参数不被支持);
    • 目标站点是否强制 HSTS(HTTP Strict Transport Security),此时浏览器可能拒绝降级到 HTTP —— 此时需确保 URL 明确为 https:// 并配合 ignore_https_errors=True;
    • Playwright 版本 ≥ 1.20(推荐使用最新稳定版,旧版本可能存在兼容性问题)。

✅ 替代方案(更安全)

对于长期维护的项目,建议优先采用以下方式替代全局忽略证书:

Mokker AI
Mokker AI

AI产品图添加背景

下载

立即学习Python免费学习笔记(深入)”;

  • 将目标站点的根证书添加至系统/Playwright 浏览器信任库;
  • 使用 --ignore-certificate-errors 启动参数(仅限 Chromium)并配合 chromium.launch(..., args=["--ignore-certificate-errors"]) —— 但此方式粒度更粗,且 WebKit/Firefox 不支持;
  • 在测试环境中部署有效 TLS 证书(如通过 mkcert 生成本地可信证书)。

总之,ignore_https_errors=True 是快速解耦网络证书问题的有效开关,但务必理解其安全含义,并在代码中添加清晰注释说明使用原因与限制范围。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言goto的用法
go语言goto的用法

本专题整合了go语言goto的用法,阅读专题下面的文章了解更多详细内容。

138

2025.09.05

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

495

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

450

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

3571

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2913

2024.08.16

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2913

2024.08.16

SSL检测工具介绍
SSL检测工具介绍

SSL检测工具有SSL Labs、SSL Check、SSL Server Test、SSLMate、SSL/TLS Analyzer等。详细介绍:1、SSL Labs是一个由Qualys提供的在线SSL检测工具,可以评估服务器证书的部署情况、加密套件、协议支持等方面的安全性,它提供了一个详细的报告,包括证书的颁发者、有效期、安全性配置等;2、SSL Check等等。

355

2023.10.20

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

67

2025.12.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

37

2026.03.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 5万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号