局域网IIS部署ASP.NET Core自签证书提示不安全(net::ERR_CERT_COMMON_NAME_INVALID)
解决局域网ASP.NET Core自签名证书HTTPS访问的安全提示问题
我之前也碰到过一模一样的问题,Chrome这类现代浏览器现在对HTTPS证书的校验规则比以前严格多了,你遇到的net::ERR_CERT_COMMON_NAME_INVALID错误主要是两个原因导致的:一是你生成的证书只指定了CN(通用名称)字段,而现在浏览器要求必须通过SAN(Subject Alternative Name)扩展明确绑定IP或域名;二是自签名证书默认不在系统的受信任根证书颁发机构列表里,浏览器会直接判定它不安全。
下面是具体的解决步骤,亲测有效:
1. 重新生成带SAN扩展的自签名证书
打开PowerShell(以管理员身份运行),执行以下命令替换原来的证书:
New-SelfSignedCertificate -Subject "CN=192.168.1.208" -FriendlyName "192.168.1.208" -DnsName "192.168.1.208" -NotAfter (Get-Date).AddMonths(36) -CertStoreLocation cert:\LocalMachine\My -TextExtension @("2.5.29.17={text}IPAddress=192.168.1.208")
这个命令的关键是-TextExtension参数,它给证书添加了SAN扩展,明确指定了要绑定的IP地址192.168.1.208,这是让Chrome认可证书对应这个IP的核心步骤。
2. 将证书导入到受信任的根证书颁发机构
自签名证书默认不受系统信任,必须手动把它加入受信任列表:
- 按下
Win+R输入mmc打开控制台,点击文件->添加/删除管理单元,选择证书->添加,然后选择本地计算机,完成添加。 - 在控制台左侧找到
证书(本地计算机)->个人->证书,找到刚才生成的192.168.1.208证书,右键点击它,选择所有任务->导出。 - 导出向导里可以选择导出私钥(生成.pfx文件)或者只导出公钥(生成.cer文件),这里推荐导出.cer格式的公钥即可。
- 接着找到
证书(本地计算机)->受信任的根证书颁发机构->证书,右键选择所有任务->导入,选择刚才导出的.cer文件,按照向导完成导入。
3. 重新在IIS中绑定证书
打开IIS管理器,找到你的网站:
- 右键点击
绑定,删除原来的HTTPS绑定(如果有的话)。 - 点击
添加,类型选择HTTPS,端口填7001,主机名留空(因为是用IP访问),然后在SSL证书下拉框里选择新生成的192.168.1.208证书,确认保存。
4. 验证访问
现在重启IIS(或者直接重启网站),再用Chrome访问https://192.168.1.208:7001,应该就不会再弹出不安全的提示了。
如果是局域网内其他机器访问,需要在那些机器上也重复步骤2,把这个.cer证书导入到它们的受信任根证书颁发机构里,这样其他机器的浏览器也能信任这个证书。
内容的提问来源于stack exchange,提问作者bolzy9
相关产品推荐
相关产品推荐

