【发布时间】:2020-07-09 10:47:17
【问题描述】:
我想在客户端设备(运行 Xamarin.Forms 的 iOS 或 Android 手机)上创建一个非对称密钥对,并创建一个证书签名请求以发送到运行我的数据库的 linux 服务器上的 ASP.NET Core Restful API .为此,我在 API 上使用 Portable Bouncy Castle 和 net core 版本。
发送的 CSR 将由自定义 CA 通过 WebAPI 签名并添加到我的数据库上的证书表中,这样当设备发送 GET 请求时,它可以检索它(一次性激活密钥用于身份验证csr的帖子以及签名证书的检索)。
使用this,我创建了一个私钥和 CSR 请求,并将 csr 转换为可以发布到 API 的字符串。当 API 收到此信息时,它会将其放入脚本访问的文本文件中,以使用 CA 证书和 CA 密钥对其进行签名,从而创建一个 client-cert.pem 文件。这将被读取为文本并存储在数据库中,以便设备可以检索它。
在此之后,我想将证书和私钥存储在设备的密钥库中,但是由于我使用 Bouncy Castle 创建密钥对,它的类型为 AsymmetricCipherKeyPair。
我将如何将这些项目存储在密钥库中,以便在连接到数据库时可以访问它以对客户端进行身份验证?我目前不确定 Xamarin.Forms 如何处理密钥库以及如何在其中存储密钥/证书。
【问题讨论】:
标签: c# xamarin keychain client-certificates android-keystore