IIS托管.NET API自签名证书引发部分安卓KEY_USAGE_BIT_INCORRECT SSL错误求助
解决思路
1. 校验自签名证书的密钥用途配置
- 检查证书的**密钥使用(Key Usage)**扩展,必须包含
Digital Signature和Key Encipherment这两项HTTPS服务必需的权限。可通过Windows证书管理器打开证书,查看「详细信息」→「密钥用法」字段确认。 - 若缺少必要项,重新生成合规的自签名证书,推荐用PowerShell命令指定密钥用途:
同时要保证证书的「增强型密钥用法」包含New-SelfSignedCertificate -DnsName "你的API域名" -CertStoreLocation "Cert:\LocalMachine\My" -KeyUsage DigitalSignature, KeyEncipherment -Type SSLServerAuthentication服务器身份验证。
2. 清理设备证书缓存(替代重置设备)
- 出错设备大概率是证书缓存异常导致,无需重置即可修复:
- 进入安卓设备「设置」→「安全与隐私」→「加密与凭据」→「信任的凭据」,找到对应的自签名证书,删除后重新安装。
- 若找不到删除入口,可直接清除调用API的移动应用的存储缓存,或简单重启设备。
3. 适配安卓版本的证书校验规则
- 不同安卓版本对SSL证书的校验逻辑有差异,尤其是Android 10+对合规性要求更严格:
- 对比出错设备和正常设备的安卓版本,定位是否存在版本专属的校验问题。
- 确保移动应用的
network_security_config.xml正确配置信任自签名证书,高版本安卓需明确声明:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">你的API域名</domain> <trust-anchors> <certificates src="@raw/你的自签名证书文件"/> </trust-anchors> </domain-config> </network-security-config>
4. 检查IIS的SSL绑定与协议配置
- 确认IIS中绑定的证书是最新生成的合规证书,避免存在同名旧证书导致设备获取错误证书。
- 关闭IIS中过时的SSL协议(如SSL 3.0、TLS 1.0/1.1),仅保留TLS 1.2及以上版本,部分安卓设备对协议与证书的搭配有严格校验。
内容的提问来源于stack exchange,提问作者Kaouthar kaouthar
相关产品推荐
相关产品推荐

