pro*_*cro 2 c# android xamarin.android maui
System.Net.WebException:
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.'
Run Code Online (Sandbox Code Playgroud)
这是我的 VS2022 解决方案在使用自签名证书和 Android 时出现的错误。
案例如下:
它是一个在本地网络上运行的 Android 应用程序,具有本地 https 后端服务。域管理员已为此服务颁发了证书。但是,该域不是官方 CA(证书颁发机构)。然后,您必须通过设置手动安装 CA。
解决方案的一部分
我为解决此问题所做的是将 CA 证书添加到 Android 设备(通过“设置”>“安全”->“加密和凭据”->“安装证书”)。
Android 应用程序中的 Web 浏览器现在可以成功访问 https 站点,而不会出现警告。
我仍然需要帮助,
但是除非通过网络安全配置进行配置,否则无法通过应用程序访问 CA 商店: https://developer.android.com/training/articles/security-config#TrustingAdditionalCas
这是可以在 Xamarin 时代完成的事情,例如:
但在MAUI我有点迷失,我没有看到合适的资源,mipmap等。
我想用这样的一句话来解决这个问题:
[程序集:应用程序(UsesCleartextTraffic = true)]
...也可以通过网络安全配置进行配置。
是否有一句话或者有人可以帮助我配置我的网络安全配置以使 CA 商店在 MAUI 解决方案中可用?
经过Gerald的建议“所以你仍然可以在Resources下添加一个xml文件夹(即Android文件夹下)”,我终于明白了!
在 Android 文件夹下添加一个 network_security_config.xml 文件,其中包含:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<!-- Trust preinstalled CAs -->
<certificates src="system" />
<!-- Additionaly trusted user added CAs -->
<certificates src="user"/>
</trust-anchors>
</base-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
并在 AndroidManifest.xml 中将:android:networkSecurityConfig="@xml/network_security_config"属性添加到应用程序节点。
因此,将其添加到已经存在的节点,不要添加新节点(否则你会得到奇怪的错误):
信任锚异常消失了,但我仍然很好奇是否有另一种方法 - 没有网络安全配置。;-)
PS 不要忘记将 CA 证书添加到 Android 设备,如原始问题中所述。
| 归档时间: |
|
| 查看次数: |
4319 次 |
| 最近记录: |