客户端,如何信任来自物联网设备的自签名证书?

Client-side, how to trust self-signed certificates from an IoT device?

我有一个 Expo 应用程序可以与 IoT 设备一起使用。 要连接到该设备,用户打开设备的 wifi 并向其发送有关其 wifi 的信息,以便设备本身可以连接到 wifi。

到目前为止,从设备到应用程序的网络调用已使用 fetch 完成,在特定端口上将 post 发送到设备的 IP 地址。例如http://192.168.1.1:1234/

负责设备生产的团队最近为此调用添加了 SSL,现在应该向 https://192.168.1.1:1234/ 进行网络调用。他们要求我 "Create a custom "TrustManager" 并信任我创建的自签名证书。"

问题是我找不到任何关于我应该如何信任使用 React Native 的自签名证书的信息。我什至找不到一种方法来仅出于测试目的禁用 SSL 证书检查(例如,我可以使用 Postman 来完成,并且网络调用有效)。我什至不确定要研究哪个方向,因为我发现的大部分信息(如果不是全部)都是特定于节点而不是客户端的。

由于我的大部分专业知识都在应用程序构建方面,所以我对 SSL 证书不是很了解,而且我知道我对问题的理解可能是错误的,而且我可能从错误的角度来处理它边.

编辑:这还不能通过 Expo 完成,但请随时对问题进行投票 here

我没有在 React native 上使用过 IOT 设备,但是当 API 制作的 SSL 认证没有正确完成时,我遇到了类似的问题。我通过使用 rn-fetch-blob (https://github.com/joltup/rn-fetch-blob) 绕过 SSL 认证解决了这个问题。

您可以尝试像这样使用 rn-fetch-blob 调用 API

RNFetchBlob.config({ trusty: true })
.fetch(
'POST',
'https://yourAPI',
{
  'Content-Type': 'application/json',
},
dataObj
)
.then(res => console.log(res));