使用有效证书调用后端API时发生握手错误

时间:2019-05-24 19:40:55

标签: android ssl flutter ssl-certificate

当应用程序尝试将https发布到我们的生产API服务时,我的一位客户遇到了CERTIFICATE_VERIFY_FAILER错误。该服务已使用有效的CA签名。到目前为止,只有一个人举报过。

来自异常的错误: HandshakeException:客户端中的握手错误(OE错误:CERTIFICATE_VERIFY_FAILER:证书链中的自签名证书(handshake.cc:352))

客户进行了出厂重置,但没有解决。他们正在三星S6上使用该应用程序。他们在同一wifi上还有另外两部手机,效果很好。该问题同时出现在wifi和手机数据上。我尝试升级到最新版本的Flutter(v1.6.3-pre.15)。他们仍在报告问题。我一直无法在模拟器上重现此内容。该应用程序还可以在其他Samsung S6设备上运行。

我还使用https://www.sslshopper.com/ssl-checker.html#hostname=prod.mapdot.net验证了ssl证书

以下是引发异常的代码:

  static Future<String> mapDotSignIn(String usr, String pass) async {
    final url = ApiHelper.RootUrl + "Login/Login";
    try {
      Map<String, dynamic> json = new Map<String, dynamic>();
      json['user'] = usr;
      json['pass'] = pass;

      var jsonStr =jsonEncode(json);

      var resp = await http.post(url,
          headers: {"Content-Type": "application/json"}, body: jsonStr);

      Map<String, dynamic> respMap = jsonDecode(resp.body);
      return respMap['token'];
    } catch (e) {
      return 'Error: ' + e.toString();
    }
  }

我正在考虑将..badCertificateCallback添加到调用中,但是除非没有其他方法,否则我宁愿避免这种情况。有什么想法可能导致这种情况吗?

0 个答案:

没有答案