我正在寻找 SSL pinning 并使用自行生成的证书在 flutter 中运行我们的 api。
问题中没有足够的细节,所以这个答案基于一些假设:
- 您的 API 是 HTTPS
- 您正在谈论验证服务器端自签名 HTTPS 证书
- 您正在使用
package:http
作为http客户端
- 没有客户端证书
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(使用前将#替换为@)