dart - Flutter/Dart语言客户端证书认证

标签 dart certificate flutter x509certificate client-certificates

我是证书界的新手。我决定创建一个必须使用证书来访问 API 的应用程序。

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

到目前为止一切顺利。

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

最佳答案

Dart 的 HttpClient 可以接受一个 SecurityContext

To add a custom trusted certificate authority, or to send a client certificate to servers that request one, pass a SecurityContext object as the optional context argument to the HttpClient constructor. The desired security options can be set on the SecurityContext object.

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

使用 SecurityContext 作为 HttpClientcontext

关于dart - Flutter/Dart语言客户端证书认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52355264/

相关文章:

android-studio - 用于 Flutter 驼峰式大小写(字符串)的 Android Studio 实时模板?

android - 在10m 18s内建立失败,并完成以下错误:Gradle任务assembleDebug失败,退出代码为1

android - SSL Android - AsyncHttpClient

powershell - 检索安装在不同用户下的证书。 Get-ChildItem 证书 :\<username>\My

windows - 如何更改远程桌面的证书?

firebase - 如何使用Dart和Flutter从云Firestore数据创建每日的csv文件?

keyboard - 在键盘隐藏的 flutter 页面文本字段中

dart - 找不到 getApplicationDocumentsDirectory() 提供的路径

dart - 我可以在子类中重新定义父类(super class)的属性吗? (也许是C#的新修饰符?)

amazon-web-services - Dart:我应该在 aws 上通过 HttpServer.bind() 使用什么 IP 地址?