如何在flutter中通过自生成的签名证书进行SSL固定?

2023-12-11

我正在寻找 SSL pinning 并使用自行生成的证书在 flutter 中运行我们的 api。


问题中没有足够的细节,所以这个答案基于一些假设:

  1. 您的 API 是 HTTPS
  2. 您正在谈论验证服务器端自签名 HTTPS 证书
  3. 您正在使用package:http作为http客户端
  4. 没有客户端证书

package:http uses dart:io HttpClient在引擎盖下,以及HttpClient有几个允许证书验证的功能。由于自签名的服务器证书将不受客户端信任,因此客户端将调用badCertificateCallback允许您自己验证服务器证书,例如:

HttpClient httpClient = new HttpClient()
  ..badCertificateCallback =
  ((X509Certificate cert, String host, int port) {
    // tests that cert is self signed, correct subject and correct date(s) 
    return (cert.issuer == cert.subject &&
        cert.subject == 'MySelfSignedCertCN' &&
        cert.endValidity.millisecondsSinceEpoch == 1234567890);
  });

IOClient ioClient = new IOClient(httpClient);
// use ioClient to perform get/post operations from package:http

// don't forget to call ioClient.close() when done
// note, this also closes the underlying HttpClient
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在flutter中通过自生成的签名证书进行SSL固定? 的相关文章

随机推荐