如何解决在 Xamarin.Forms 中使用 SSL 和客户端身份验证连接到 RestAPI
我正在创建一个移动应用程序,该应用程序将能够通过我在树莓派上设置的 Rest api 访问数据库,并且还想使用客户端身份验证。客户端生成自己的密钥和证书请求,将 csr 与提供给用户的代码一起发送到在 pi 上运行的另一个 api,以便签署证书并将其返回给客户端。我已验证我可以创建密钥和 csr,发送并检索证书,并相信我可以使用 xamarin Essentials 安全存储来存储这些,以便以后在发出 https 请求时访问。
我面临的问题是如何验证服务器证书,以及如何在发出请求时使用客户端证书和密钥,因为 HttpClient 类似乎没有简单的方法来做到这一点。
我相信有一种方法可以使用证书固定并将服务器的公钥直接添加到应用程序中以验证它们是否匹配(请参阅 https://medium.com/@ishanthakamal/how-to-implement-certificate-pinning-in-xamarin-forms-a3577c686b51),但是我更喜欢验证服务器的方法证书针对 CA 链证书并将其存储在应用程序中,因为这意味着对服务器证书的任何更改都不会影响客户端,因为它只会根据此文件进行验证,但不知道我将如何将其实现到应用程序中我将链文件与客户端证书/密钥一起存储在安全存储中。如果在 Xamarin 中执行此操作不可行,我将使用上述文章中描述的证书固定方法。
我的主要问题是我需要添加什么才能将客户端身份验证用作我的请求的一部分。我是否可以使用 modernHttpClient,因为我相信它有一些关于客户端证书的功能(仅供参考,我的证书是 .pem 格式)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。