云服务器内容精选

  • 概述 订阅推送的示意图如下图所示: 物联网平台 采用HTTPS协议向应用服务器进行消息推送时,物联网平台需要校验应用服务器的真实性,需要在物联网平台上加载CA证书,该证书由应用服务器侧提供(调测时可自行制作调测证书,商用时建议更换为商用证书,否则会带来安全风险)。 推送机制:物联网平台向应用服务器推送消息后,如果应用服务器接收消息成功,会向物联网平台返回200 OK响应码。如果应用服务器无响应(或响应时间超过15秒),或者应用服务器向物联网平台返回非200响应码(如500、501、502、503、504等),表示消息推送失败,消息推送失败后该消息将被丢弃。推送失败连续累计达到10次,物联网平台会将该订阅URL的主机地址加入黑名单,在黑名单期间消息将会积压在平台(默认积压最近24小时或1GB数据,若只想保留最新数据可参考数据转发积压策略配置进行配置)。此后每3分钟尝试对黑名单中的订阅URL主机地址进行消息推送,如果推送失败,则继续保持黑名单;如果推送成功,则解除黑名单。解除黑名单后消息将会以最大流控值推送完积压的消息后才会正常推送最新消息(默认流控为800TPS,自定义配置参考数据转发流控策略配置)。
  • 制作调测证书 调测证书,又叫做自签名证书,用于客户端通过HTTPS访问服务端时进行安全认证。在物联网平台的使用中,可用于物联网平台向应用服务器采用HTTPS协议推送数据时,物联网平台认证应用服务器的合法性。本文以Windows环境为例,介绍通过Openssl工具制作调测证书的方法,生成的证书为PEM编码格式的证书,后缀为.cer。 常见的证书存储格式如下表所示。 存储格式 说明 DER 二进制编码,后缀名.der/.cer/.crt PEM BASE 64编码,后缀名.pem/.cer/.crt JKS Java的证书存储格式,后缀名.jks 自签名证书仅用于调测阶段,在商用时,您需要向知名CA机构申请证书,否则可能会带来安全风险。 在浏览器中访问这里,下载并安装OpenSSL工具。 以管理员身份运行cmd命令行窗口。 执行cd c:\openssl\bin(请替换为openssl实际安装路径),进入openssl命令视图。 执行如下命令生成CA根证书私钥文件ca_private.key。 openssl genrsa -passout pass:123456 -aes256 -out ca_private.key 2048 aes256:代表加密算法。 passout pass:代表私钥密码。 2048:代表密钥长度。 执行如下命令使用CA根证书私钥文件生成csr文件ca.csr,用于6生成CA根证书。 openssl req -passin pass:123456 -new -key ca_private.key -out ca.csr -subj "/C=CN/ST=GD/L=SZ/O=Huawei/OU=IoT/CN=CA" 如下信息您可以根据实际情况进行修改。 C:代表国家,填写CN。 ST:地区,如GD。 L:城市,如SZ。 O:组织,如Huawei。 OU:组织单位,如IoT。 CN:Common Name,填写为CA的组织名,如CA。 执行如下命令生成CA根证书ca.cer。 openssl x509 -req -passin pass:123456 -in ca.csr -out ca.cer -signkey ca_private.key -CAcreateserial -days 3650 如下信息您可以根据实际情况进行修改。 passin pass:必须与4中设置的私钥密码保持一致。 days:代表证书有效期。 执行如下命令生成应用服务器端私钥文件。 openssl genrsa -passout pass:123456 -aes256 -out server_private.key 2048 执行如下命令生成应用服务器端csr文件,用于生成服务端证书。 openssl req -passin pass:123456 -new -key server_private.key -out server.csr -subj "/C=CN/ST=GD/L=SZ/O=Huawei/OU=IoT/CN=appserver.iot.com" 如下信息您可以根据实际情况进行修改。 C:代表国家,填写CN。 ST:地区,如GD。 L:城市,如SZ。 O:组织,如Huawei。 OU:组织单位,如IoT。 CN:Common Name,一般填写为应用服务器的 域名 或IP。 通过CA私钥文件ca_private.key对服务端csr文件server.csr进行签名,生成服务端证书文件server.cer。 openssl x509 -req -passin pass:123456 -in server.csr -out server.cer -sha256 -CA ca.cer -CAkey ca_private.key -CAserial ca.srl -CAcreateserial -days 3650 (可选)如果您需要.crt/.pem后缀的证书,可以根据如下命令进行转换。下面将以server.cer转为为server.crt为例进行说明,需要转换ca.cer证书时,请将命令中的server替换为ca。 openssl x509 -inform PEM -in server.cer -out server.crt 在openssl安装目录的bin文件夹下,获取生成的CA证书(ca.cer/ca.crt/ca.pem)、应用服务器证书(server.cer/server.crt/server.pem)和私钥文件(server_private.key)。其中CA证书用于加载到物联网平台,应用服务器证书和私钥文件用于加载到应用服务器。
  • 转发方式概述 设备接入到物联网平台后,便可与物联网平台进行通信。设备通过自定义Topic或产品模型方式将数据上报到平台,在控制台设置后,通过订阅推送的方式,将设备生命周期变更、设备属性上报、设备消息上报、设备消息状态变更、设备状态变更、批量任务状态变更等消息转发到您指定的服务器。 当前华为物联网平台支持HTTP/HTTPS、AMQP、MQTT和设备间通信四种数据转发方式。 HTTP/HTTPS方式 订阅:应用服务器通过调用物联网平台的创建规则触发条件、创建规则动作、修改规则触发条件接口配置并激活规则,或者在控制台创建订阅任务,向平台获取发生变更的设备业务信息(如设备生命周期管理、设备数据上报、设备消息状态、设备状态等)和管理信息(软固件升级状态和升级结果)。订阅时必须指定应用服务器的URL,也称为回调地址。(什么是回调地址?)。 推送:订阅成功后,物联网平台根据应用服务器订阅的数据类型,将对应的变更信息(推送的通知内容可参考流转数据)推送给指定的URL地址。如果应用服务器没有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。物联网平台进行数据推送时,数据格式为JSON格式,推送协议可以采用HTTP或HTTPS协议,其中HTTPS协议为加密传输协议,需要进行安全认证,更加安全,推荐使用。 HTTP/HTTPS方式详细请参考使用HTTP/HTTPS转发。 AMQP方式 订阅:AMQP(Advanced Message Queuing Protocol)即高级队列消息协议。用户通过控制台创建订阅任务,也可以通过调用物联网平台的创建规则触发条件、创建规则动作、修改规则触发条件接口配置并激活规则,向平台获取发生变更的设备业务信息(如设备生命周期管理、设备数据上报、设备消息状态、设备状态等)和管理信息(软固件升级状态和升级结果)。订阅时必须指定具体的AMQP消息通道。 推送:订阅成功后,物联网平台根据用户订阅的数据类型,将对应的变更信息推送给指定的AMQP消息队列。如果用户没有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。用户可通过AMQP的客户端与IoT平台建立链接,来接收数据。 AMQP详细请参考使用AMQP转发。 MQTT方式 订阅:用户可以通过调用物联网平台的创建规则触发条件、创建规则动作、修改规则触发条件接口配置并激活规则,向平台获取发生变更的设备业务信息(如设备生命周期管理、设备数据上报、设备消息上报、设备状态等)和管理信息(软固件升级状态和升级结果)。订阅时必须指定接收推送消息的Topic。 推送:订阅成功后,物联网平台根据用户订阅的数据类型,将对应的变更信息推送给指定的Topic。如果用户没有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。用户可通过MQTT的客户端与IoT平台建立连接,来接收数据。 MQTT详细请参考使用MQTT转发。 设备间通信 订阅:物联网平台支持基于MQTT协议实现设备间的消息通信,用户可通过控制台创建规则,也可以通过调用物联网平台的创建规则触发条件、创建规则动作、修改规则触发条件接口配置并激活规则,向平台获取设备上报的消息。设备订阅只支持消息上报。 推送:订阅成功后,物联网平台会将设备上报的消息推送到指定的MQTT Topic,当设备接入平台后,可以通过订阅该Topic来接收数据,从而实现设备间的消息通信。 设备间通信详细请参考设备间通信。 数据转发方式 适用场景 优点 限制 HTTP/HTTPS订阅推送 应用作为服务端被动接收IoT云服务的消息。 - 流控限制800TPS,不建议大流量推送使用HTTP/HTTPS方式。 AMQP订阅推送 应用作为客户端,可主动拉取IoT云服务的消息,也可以通过监听被动接收 IoT云服务的消息。 能主动拉取数据 请参考连接规格。 MQTT订阅推送 应用作为客户端,可以通过订阅接收 IoT云服务的消息。 - 请参考使用限制。 设备间通信 智能家居控制场景,手机APP和智能设备之间进行消息通信。 设备联动,设备间进行数据传输与消息通信。 实现设备间通信 请参考设备间消息通信概述。 父主题: 数据转发至第三方应用