本地通过Hosts映射test.mywebsite到localhost后HTTPS证书验证失败求助
解决Chrome访问自定义域名时证书不匹配的问题
你的核心问题是:本地服务返回的是localhost证书,而非匹配test.mywebsite.com的证书,导致Chrome验证失败。以下是针对性解决步骤:
确认服务器使用的证书
多数开发服务器默认绑定localhost证书,需手动指定*.mywebsite.com的证书文件。以Node.js/Express为例,启动服务时要配置HTTPS选项:const https = require('https'); const fs = require('fs'); const express = require('express'); const app = express(); const options = { key: fs.readFileSync('/path/to/your/private.key'), cert: fs.readFileSync('/path/to/your/*.mywebsite.com.crt') }; https.createServer(options, app).listen(3000);若用Nginx反向代理,需在虚拟主机配置中指定对应域名的证书,而非
localhost证书。验证证书的SAN字段
检查*.mywebsite.com证书是否包含test.mywebsite.com作为主题备用名称(SAN),部分工具生成通配符证书时可能遗漏该配置。用OpenSSL命令查看:openssl x509 -in your-cert.crt -text -noout找到
X509v3 Subject Alternative Name字段,确认存在DNS:*.mywebsite.com或DNS:test.mywebsite.com。将证书导入系统信任库
仅靠Chrome的flags无法解决证书信任问题,需把*.mywebsite.com证书导入系统受信任根证书机构:- Windows:打开证书管理器,进入「受信任的根证书颁发机构」导入证书。
- macOS:打开钥匙串访问,将证书拖入「系统」钥匙串,右键选择「显示简介」,设置信任为「始终信任」。
清除Chrome缓存与旧证书
Chrome可能缓存了旧证书信息,需手动清理:- 进入Chrome设置→隐私和安全→清除浏览数据,勾选「缓存的图片和文件」「Cookie和其他网站数据」,选择「所有时间」后清除。
- 访问
chrome://settings/security→管理证书,删除旧的localhost或mywebsite相关证书。
关于
chrome://flags/#unsafely-treat-insecure-origin-as-secure的说明
该flag用于将HTTP源标记为安全,你的场景是HTTPS证书不匹配,此设置无效,无需依赖。
内容的提问来源于stack exchange,提问作者Hermios
相关产品推荐
相关产品推荐

