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

tyl*_*ile 3 certificate client-certificates x509certificate dart flutter

我对证书世界相当陌生。我决定创建一个必须使用证书来访问 API 的应用程序。

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

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

现在我尝试从 dart 发出请求,但不知道应该向 API 发送哪些文件。我应该发送 pfx 文件吗?或者也许是 .cert 和 .pvk 文件?小伙伴们你们做过吗?有人可以帮助我理解这个过程吗?我已经浏览了很多网站,但仍然没有找到答案。在移动开发领域我也是全新的。

Ric*_*eap 6

DartHttpClient可以采取SecurityContext.

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

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

使用它SecurityContext作为context您的HttpClient.