.NET MAUI安卓应用Hostname未验证SSL错误求助
.NET MAUI安卓端SSL请求错误修复方案
核心问题:未关联自定义Handler到HttpClient
你创建了AndroidClientHandler并配置了SSL验证回调,但没有将该Handler传入HttpClient的构造函数,导致所有SSL相关配置完全未生效,这是问题的关键。
修复步骤
1. 修正HttpClient初始化代码
确保HttpClient使用你配置好的Handler,修改后的代码如下:
var json = Newtonsoft.Json.JsonConvert.SerializeObject(user); var data = new System.Net.Http.StringContent(json, Encoding.UTF8, "application/json"); var url = "你的请求URL"; // 配置自定义Handler HttpClientHandler handler = new Xamarin.Android.Net.AndroidClientHandler(); handler.ServerCertificateCustomValidationCallback += (sender, cert, chain, sslPolicyErrors) => { // 仅测试环境使用,生产环境请替换为真实证书验证逻辑 return true; }; // 关键:将Handler传入HttpClient构造函数 var client = new HttpClient(handler); // 配置安全协议(需在HttpClient创建前设置) ServicePointManager.CheckCertificateRevocationList = false; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3; var response = await client.PostAsync(url, data); response.EnsureSuccessStatusCode(); var responseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); var responseobj = JsonConvert.DeserializeObject<responsecls>(responseBody);
2. 安卓端网络安全性补充配置(针对Android 10+)
如果是使用自签名证书或内部CA证书,还需在安卓项目中配置网络安全策略:
- 在安卓项目的
Resources/xml目录下创建network_security_config.xml文件,内容如下(测试环境允许所有证书,生产环境请替换为具体证书配置):
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> <!-- 若需信任用户安装的证书,添加下面一行 --> <!-- <certificates src="user" /> --> <!-- 若需信任特定自签名证书,添加下面一行并指定证书路径 --> <!-- <certificates src="@raw/your_cert_file" /> --> </trust-anchors> </base-config> </network-security-config>
- 在
AndroidManifest.xml的<application>标签中添加配置:
<application ... android:networkSecurityConfig="@xml/network_security_config">
3. 生产环境注意事项
- 禁止使用
return true完全绕过SSL验证,这会导致严重安全风险。 - 正确的做法是将服务器的CA证书或自签名证书打包到安卓项目中,通过
network_security_config.xml指定信任该证书。
内容的提问来源于stack exchange,提问作者Asım
相关产品推荐
相关产品推荐

