必须导入windows根信任存储才能绕过浏览器“不安全”警告;需用openssl生成含san(localhost、127.0.0.1、::1)的自签名证书,并通过certlm.msc安装到“受信任的根证书颁发机构”。

在Windows 11上为本地开发环境(如Vue/Vite前端、Express后端、Nginx代理或Tomcat服务)快速生成可用于HTTPS测试的自签名SSL证书,必须绕过浏览器“不安全”警告才能真正实现无缝调试,而不是仅生成文件就结束。
下载并安装官方OpenSSL(非Chocolatey版)
打开浏览器,访问 Shining Light Productions官网,下载标有“Win64 OpenSSL v3.3.2 Light”的安装包(2026年最新稳定版),不要选“Full”版本——它捆绑了Perl和不必要的文档,反而容易污染PATH。
双击运行安装程序,关键一步:勾选 【Add OpenSSL to the Windows PATH environment variable】,否则后续所有命令都会报“openssl不是内部或外部命令”。
安装路径建议保持默认(C:\Program Files\OpenSSL-Win64),避免空格和中文路径导致配置文件读取失败。
准备证书生成所需的配置文件
OpenSSL在Windows下无法像Linux那样用动态注入SAN扩展,必须显式提供一个含SubjectAltName(SAN)的配置文件,否则生成的证书在Chrome/Firefox中访问<code>https://localhost仍会提示“NET::ERR_CERT_COMMON_NAME_INVALID”。
用记事本新建一个纯文本文件,保存为C:\temp\ssl.cnf(路径任意,但推荐全英文无空格),内容如下:
[req]
default_bits = 2048
distinguished_name = req_distinguished_name
x509_extensions = req_ext
prompt = no
[req_distinguished_name]
C = CN
ST = Beijing
L = Beijing
O = LocalDev
OU = Test
CN = localhost
[req_ext]
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
IP.1 = 127.0.0.1
IP.2 = ::1
⚠️ 注意:最后一行IP.2 = ::1不能省略,否则在启用IPv6的Win11系统中,某些浏览器(如Edge最新版)会拒绝验证证书。
执行三步命令生成证书与私钥
以管理员身份打开Windows Terminal(PowerShell或CMD均可),逐条执行以下命令:
第一步:生成2048位RSA私钥openssl genrsa -out C:\temp\localhost.key 2048
第二步:基于私钥和配置文件生成自签名证书openssl req -x509 -new -nodes -key C:\temp\localhost.key -sha256 -days 3650 -out C:\temp\localhost.crt -config C:\temp\ssl.cnf
第三步:验证证书是否包含SAN扩展openssl x509 -in C:\temp\localhost.crt -text -noout | findstr "DNS\|IP"
若输出中出现DNS:localhost、IP Address:127.0.0.1和IP Address:::1,说明生成成功;若无任何输出,则配置文件路径或内容有误,需返回上一步检查。
将证书导入Windows根信任存储
双击打开C:\temp\localhost.crt,在弹出的证书窗口中点击“安装证书…” → 选择“本地计算机” → 点击“下一步” → 选择“将所有的证书放入下列存储” → 点击“浏览…” → 选中“受信任的根证书颁发机构” → 完成。
这一步不可跳过,否则即使证书文件存在,浏览器仍显示“您的连接不是私密连接”。
导入完成后,打开certlm.msc,展开“受信任的根证书颁发机构”→“证书”,确认列表中存在一条“颁发给:localhost,颁发者:localhost”的证书。











