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

开发环境下在Android浏览器中信任自签名证书的方法

问题描述

开发渐进式Web应用(PWA)时,本地开发使用自签名证书在电脑上运行正常,但通过局域网内的Android 10系统Zebra TC26设备访问时,始终收到自签名证书不安全的警告。

已尝试操作及遇到的问题:

  • 导出Visual Studio生成的localhost自签名证书并导入Android设备,无效(原因是证书仅对localhost有效,访问时使用的是开发电脑的IP)。
  • 使用以下命令创建包含IP地址的自签名证书:
    New-SelfSignedCertificate -Subject MyDevCertName -TextExtension @("2.5.29.17={text}DNS=localhost&IPAddress=192.168.1.27") -NotAfter (Get-Date).AddYears(25) -CertStoreLocation cert:\LocalMachine\My
    
    导出为PFX格式后,执行dotnet dev-certs https --clean -i C:\Daten\MyDevCertName.pfx -p secret时提示错误:
    The certificate at 'MyDevCertName.pfx' is not a valid ASP.NET Core HTTPS development certificate.
    
解决方案

一、创建符合ASP.NET Core要求的自签名证书

之前的证书缺少ASP.NET Core HTTPS证书必需的增强型密钥用法(EKU),需要补充服务器身份验证的EKU。执行以下PowerShell命令:

New-SelfSignedCertificate `
  -Subject "CN=MyDevCert" `
  -TextExtension @(
      "2.5.29.17={text}DNS=localhost&IPAddress=192.168.1.27",
      "2.5.29.37={text}1.3.6.1.5.5.7.3.1" # 服务器身份验证EKU,ASP.NET Core必需
  ) `
  -NotAfter (Get-Date).AddYears(25) `
  -CertStoreLocation cert:\LocalMachine\My `
  -KeyAlgorithm RSA `
  -KeyLength 2048 `
  -KeyExportPolicy Exportable

导出证书

  1. 打开Windows证书管理器(运行certlm.msc),在「个人」→「证书」中找到刚创建的MyDevCert。
  2. 右键证书 → 「所有任务」→ 「导出」,按向导完成两次导出:
    • 第一次选择「是,导出私钥」,导出为PFX格式,设置密码(如secret),保存路径为C:\Daten\MyDevCert.pfx。
    • 第二次选择「否,不导出私钥」,导出为CER格式,保存路径为C:\Daten\MyDevCert.cer(用于Android设备导入)。

二、配置ASP.NET Core使用新证书

方法1:通过dotnet dev-certs导入

执行以下命令:

dotnet dev-certs https --clean
dotnet dev-certs https --import C:\Daten\MyDevCert.pfx -p secret

若仍提示证书无效,改用方法2直接在项目配置中指定证书。

方法2:修改launchSettings.json

打开项目的Properties/launchSettings.json,找到对应启动配置段,添加证书相关配置:

"profiles": {
  "YourProjectName": {
    "commandName": "Project",
    "dotnetRunMessages": true,
    "launchBrowser": true,
    "applicationUrl": "https://localhost:5001;https://192.168.1.27:5001",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    },
    "sslPort": 5001,
    "certificate": {
      "path": "C:\\Daten\\MyDevCert.pfx",
      "password": "secret"
    }
  }
}

项目启动时会直接使用指定证书,绕过dotnet dev-certs的验证限制。

三、在Android 10设备上信任证书

  1. 将导出的MyDevCert.cer文件传到Zebra TC26设备(可通过邮件、局域网共享、USB传输)。

  2. 打开设备「设置」→「安全」→「加密与凭据」→「安装证书」→「从存储安装」。

  3. 找到并选择MyDevCert.cer文件,证书类型选择**「VPN和应用」**(Android 10及以上版本默认用户证书仅用于此类别,浏览器会信任这类证书)。

  4. 输入设备PIN/密码验证,给证书命名(如「Dev Local Cert」),完成安装。

  5. (可选)若浏览器仍提示警告,检查开发者选项:

    • 打开「设置」→「关于手机」→ 连续点击「版本号」启用开发者选项。
    • 进入开发者选项,找到「启用不信任的证书」并开启(部分设备有此选项,用于强制信任用户安装的证书)。

完成以上步骤后,用Android设备访问https://192.168.1.27:5001就不会再出现证书不安全的警告了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:01:29