【问题标题】:Trust anchor for certification path not found [ Xamarin.Forms ]找不到证书路径的信任锚 [Xamarin.Forms]
【发布时间】:2020-05-21 02:12:39
【问题描述】:

我在尝试使用 Open VPN POST 到 https API 时遇到以下异常

注意:当我尝试在连接了 Open VPN 的平板电脑中使用 swagger 访问 API 时,API 正在连接并且工作正常,只是移动应用程序无法使用它. (在 Xamarin 应用程序中,我们遇到了异常。

代码:

var uri = prepareLoginUri("/Login/Login");
var body = new { username, password };
var json = JsonConvert.SerializeObject(body);
var content = new StringContent(json, Encoding.UTF8, "application/json");

var response = await _client.PostAsync(uri, content);

例外:

java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

找到了解决此异常但未解决问题的方法:

https://forums.xamarin.com/discussion/91782/trust-anchor-for-certification-path-not-found

根据此链接中的建议,我在MainActivity.cs

中添加了以下代码
HttpClientHandler clientHandler = new HttpClientHandler();
clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return true; };
_client = new HttpClient(clientHandler);

这解决了异常,但现在我从 API 得到的响应是 404 Not found

StatusCode: 404, ReasonPhrase: 'Not Found', Version: 1.1, Content: System.Net.Http.HttpConnection+HttpConnectionResponseContent

但大摇大摆地,API 工作得非常好。

【问题讨论】:

  • 网址是否正确?你使用的网址是:http://localhost: 吗?
  • 不,我们使用的 URL 是 IP 地址192.822.2.123:2344
  • 网址似乎是正确的。
  • 我最近遇到了同样的异常。看看这里的帖子,以帮助正确配置您网站的 SSL 证书,这对我来说很有帮助:stackoverflow.com/a/16302527/2113715。无论证书如何,您设置的回调基本上都允许连接,这不是您想要在生产中执行的操作。

标签: c# xamarin xamarin.forms xamarin.android openvpn


【解决方案1】:

解决方案

我们需要一个 SSL 证书,但即使添加了一个,我们也遇到了这个问题,但是 这与移动应用程序无关,问题是 SSL 证书 我们没有正确配置证书,我们必须添加中间 为 HA 代理生成 .pem 文件的证书。

这个网站将我们的关注点从移动应用转移到了服务器上。 https://www.digicert.com/help/

上面说的很清楚是服务器的问题,下面是链接 这帮助我解决了这个问题。

Trust Anchor not found for Android SSL Connection

【讨论】:

    【解决方案2】:

    尝试在BaseAddress 的末尾放置一个斜杠(/),并且不能在您的相对URI 的开头放置一个斜杠(/)。喜欢:

    client.BaseAddress = new Uri("http://192.168.1.100:33435/ManageSystem/");
    var response = await client.GetAsync("Login/Login");
    

    【讨论】:

    猜你喜欢
    • 2014-01-29
    • 2017-10-03
    • 2019-05-19
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 2017-04-28
    相关资源
    最近更新 更多