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

时间:2019-09-13 17:46:04

标签: javascript react-native iot

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

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

负责设备生产的团队最近向此呼叫添加了SSL,现在应该将网络呼叫打到https://192.168.1.1:1234/。他们要求我“创建自定义“ TrustManager”并信任我创建的自签名证书。”

问题是我找不到有关如何使用React Native信任自签名证书的任何信息。我什至找不到仅出于测试目的而禁用SSL证书检查的方法(例如,我可以对Postman进行此操作,并且网络调用也可以工作)。我什至不知道应该寻找哪个方向,即使不是我发现的所有信息都最多,它是特定于节点而不是客户端的。

由于我的大部分专长是应用程序构建,因此我对SSL证书的了解不多,我知道我对问题的理解可能是错误的,并且我可能是从错误的角度来解决问题。

编辑:尚无法通过Expo进行此操作,但是可以随时对问题here进行投票

1 个答案:

答案 0 :(得分:1)

我还没有在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));