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

内网运行ASP.Net Web Api遇NET:ERR_CERT_AUTHORITY_INVALID证书问题咨询

内网环境下ASP.NET Web API实现安全HTTPS连接的解决方案

方案一:使用自签名证书(小范围内网首选)

适合只有几台内网设备的场景,操作简单:

  1. 生成自签名证书
    打开服务器的管理员PowerShell,执行命令:
    New-SelfSignedCertificate -DnsName "xxx.xxx.xxx.xxx" -CertStoreLocation "Cert:\LocalMachine\My"
    
    把xxx.xxx.xxx.xxx替换成服务器实际内网IP,也可添加自定义内网域名(如server.local),多个值用逗号分隔。
  2. 绑定证书到Web API
    • IIS部署:打开IIS管理器,找到目标网站,右键选择「编辑绑定」,添加HTTPS绑定,选择刚生成的证书,端口设为9100。
    • ASP.NET Core自托管:先将证书导出为带密码的.pfx文件,再在Program.cs中配置Kestrel:
      builder.WebHost.UseKestrel(options =>
      {
          options.ListenAnyIP(9100, listenOptions =>
          {
              listenOptions.UseHttps("证书文件路径.pfx", "证书密码");
          });
      });
      
  3. 分发证书到内网客户端
    在服务器上导出证书为.cer格式(无需密码),然后在内网每台客户端电脑上:
    • 双击.cer文件,点击「安装证书」
    • 选择「本地计算机」,下一步
    • 选择「将所有证书放入下列存储」,点击「浏览」,选择「受信任的根证书颁发机构」
    • 完成安装后,浏览器将信任该证书,不再提示连接非私密。

方案二:搭建内网CA证书颁发机构(大规模内网适用)

如果内网设备较多,不想逐个分发证书,可搭建内网根CA:

  1. 部署内网根CA
    在一台Windows服务器上安装「Active Directory证书服务(AD CS)」,选择「证书颁发机构」和「证书颁发机构Web注册」角色,配置为根CA。
  2. 申请服务器证书
    在Web API服务器上,通过「证书管理器」或IIS的「服务器证书」功能,向内网CA申请包含服务器IP或内网域名的SSL证书。
  3. 配置客户端信任根CA
    把内网CA的根证书导出为.cer文件,分发到所有内网客户端的「受信任的根证书颁发机构」存储中,后续该CA签发的所有证书都会被自动信任。

方案三:使用Let's Encrypt证书(内网服务器可访问公网时可选)

若内网服务器能访问公网,且有公网可解析域名(或可配置DNS记录),可使用免费的Let's Encrypt证书:

  1. 用Certbot工具在服务器上申请证书,选择适配IIS或ASP.NET Core的插件。
  2. 将证书绑定到Web API的HTTPS端口。
  3. 主流浏览器默认信任Let's Encrypt根证书,内网客户端无需额外配置即可正常访问。

新手注意事项

  • 证书的DnsName必须与访问API时使用的地址完全一致(用IP访问填IP,用域名访问填域名),否则浏览器仍会报错。
  • 导入证书时必须选择「受信任的根证书颁发机构」存储,放在其他位置不会生效。
  • 开发环境用dotnet dev-certs https --trust生成的证书仅本地信任,内网其他设备无法识别,需导出后分发才能使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:25:27