一尘不染

Flutter / Dart语言中的客户端证书身份验证

flutter

我在证书世界中还很陌生。我决定创建一个应用程序,该应用程序必须使用证书来访问API。

我创建了一个自签名的CA证书,SSL证书和一个客户端证书。我将它们导入Windows
Server并正确配置了IIS。我可以通过clientcertificate.pfx文件向浏览器(Google
Chrome)发出请求。pfx证书通过MMC导入到个人用户存储中。为了创建pfx文件,我使用了.cert和.pvk文件。

到目前为止,一切都很好。

现在,我试图从dart发出请求,但不知道应该将哪些文件发送到API。我应该发送pfx文件吗?还是.cert和.pvk文件?你们有做过吗?有人可以帮助我了解一下此过程吗?我已经阅读了很多网站,但仍然找不到答案。在移动开发世界中,我也是全新的。


阅读 415

收藏
2020-08-13

共1个答案

一尘不染

飞镖HttpClient可以取一个SecurityContext

若要添加自定义的受信任证书颁发机构,或向 请求证书的服务器发送客户端证书请将
SecurityContext对象作为可选context参数传递给HttpClient构造函数。可以在SecurityContext对象上设置所需的安全选项。

将您的PKCS12客户端密钥库(pfx文件)存储在应用程序中的某处(可能作为资产),并在启动时加载它。创建一个SecurityContext,然后调用两者useCertificateChainBytesusePrivateKeyBytes并将相同的值传递给两者(pfx文件的内容和密码)。

使用它SecurityContext作为context您的HttpClient

2020-08-13