MixIO物连网平台搭建
MixIO物连网平台搭建
回到前面,自己好奇搭了开源的物连网平台,用nginx作为应用网关,代理了MixIO的服务,用自己的域名访问,已经能够正常访问自己创建的项目。
不过,有几点,全站https加密没弄,于是自己申请了证书,虽然站点能加密了,不过在mqtt.js调用连接的时候,是直接拼接域名加端口号,直接访问了后端的服务而没有经过nginx,wss协议验证证书的时候,会直接调用MixIO平台签发的证书,这个证书是没办法通过浏览器的证书信任,MixIO内置的证书也没法匹配域名。所以虽然监听了443并配置了域名证书,不过在连接wss协议后一直是拒绝连接的,这下好了,登录平台,连自己创建的项目也不能连接,开发板上配置的mqtt连接,也没办法通过域名连接,只能改为连接服务器IP。本来以为,就http协议,不用加密,用用就算了,后面发现,MixIO的APP,配置私有服务,请求http服务是报错了,物连网平台的想实现人脸识别,调用WebRTC API用于访问和控制用户摄像头和麦克风等媒体输入设备,出于安全考虑,是要求在HTTPS环境下才能使用,站点没有https,添加摄像头时,直接报错。
navigator.mediaDevices is undefined
这下,站点https加密就跑不了,不弄就没法继续玩了。所以,nginx代理的配置除了配置https证书路径,代理后端服务,还得考虑wss,websocket,nginx,mqtt这一串的问题。
nginx代理的配置
nginx配置代理,包括https配置,websocket升级协议,http跳转https。
1 |
|
nginx配置已经完成了反向代理,https,http跳转https,wss协议配置。接下来,到这里,nginx的相关的配置已经完事了。在我自己搭建的过程中,MixIO有一个web后台,可以直接配置证书,不过在我操作保存配置文件后,重启MixIO服务,wss连接依然是报错的,这让我一时也没搞明白是不是自己nginx配置的问题,还是mqtt协议后端路径,还是这个证书,在管理端配置后,实际是不生效的。自己从MixIO的配置文件中,写入申请的证书,重启服务也还是不生效的。所以就一直用http协议来请求网站服务。直到遇到了页面控件添加摄像头的问题。
证书转换
在没办法解决WebRTC API调用,自己只能在MixIO的配置文件中找证书调用的位置,给自己找到了证书的路径,站点的公钥是crt,私钥是pem格式,而自己申请的证书公钥是cer,私钥是key格式。转换也很简单,先验证一下证书的加密方式,只要不是DER格式,直接改后辍就可以了。
验证也很简单。
1 |
|
如果是DER格式,输出为二进制字符,可以通过openssl转换。
1 |
|
更改证书后辍后,直接替换掉原有的证书文件,重新启动服务,wss连接正常了,一个正常的物连网平台可以正常使用了,到此,部署结束。