You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular+.NET应用Playwright测试:WebKit登录请求SSL证书错误求助

解决Playwright WebKit环境下SSL证书验证失败问题

问题根源

WebKit(对应Safari内核)的SSL证书校验逻辑比Chromium、Firefox更严格,尤其是针对开发环境常见的自签名证书、证书链不完整或域名不匹配场景,会直接拒绝信任并抛出证书错误。而Chromium和Firefox在Playwright默认配置下,可能已经隐含放宽了这类校验,或者你之前为它们单独配置过忽略证书错误,所以没有触发问题。

可行解决方案

1. 全局忽略WebKit的HTTPS错误(测试环境专用)

在Playwright的测试配置中,给WebKit添加ignoreHTTPSErrors: true参数,强制跳过证书验证:

import { test, expect } from '@playwright/test';

// 针对WebKit单独配置
test.use({
  browserName: 'webkit',
  ignoreHTTPSErrors: true,
});

test('登录页面功能测试', async ({ page }) => {
  await page.goto('/login');
  await page.fill('#username', 'test_user');
  await page.fill('#password', 'test_pass');
  await page.click('#login-button');
  // 后续登录成功断言逻辑
});

2. 为WebKit导入信任证书

如果不想全局禁用校验,可以将后端的SSL证书添加到WebKit的信任列表中:

  • 先导出后端的SSL证书为PEM格式
  • 在测试配置中指定证书路径:
test.use({
  browserName: 'webkit',
  certificates: [{
    path: './dev-cert.pem', // 你的证书文件路径
    // 若证书有密码,添加password字段:password: 'cert_pass'
  }]
});

3. 排查证书本身的有效性

先确认后端证书是否符合WebKit的要求:

  • 证书绑定的域名与请求域名完全一致(包括子域名)
  • 证书未过期
  • 证书链完整(包含根证书和中间证书)
  • 未使用WebKit已弃用的加密算法

注意事项

  • ignoreHTTPSErrors仅适用于测试环境,绝对不能在生产环境启用
  • 若在CI/CD环境运行测试,要确保证书文件已同步到测试执行环境中

内容的提问来源于stack exchange,提问作者Stella Esparza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:31:01