腾讯云边缘计算如何启用MQTT?

如何启用MQTT?
使用腾讯云边缘计算的设备管理或边云协同的话,需要启用MQTT,并在边缘节点或实例上安装MQTT。 可以安装开源的mosquito,也可以使用EISP推荐的hiveMQ。
 
开源的mosquito的安装方法可参考mosquito的开源社区。
 
hiveMQ的安装分非安全连接和安全连接两种。推荐使用安全连接方式,安全连接下与hiveMQ之间互通的消息是加密的。
 
 非安全连接
通过EISP控制台的容器应用创建一个非安全连接的MQTT服务:

配置项

镜像

cis-hub-changsha-1.cmecloud.cn/edge-public/hivemq:latest

访问方式

端口映射

容器端口:1883

主机端口:任意可用端口

 应用创建成功后,您可以通过tcp://<HiveMQ应用主机ip>:<访问方式的主机端口>访问非安全连接的HiveMQ服务。
 
安全连接
 
   1、安全连接方式下需要首先制作证书。操作如下:
 
        操作1:生成CA证书
mkdir -p /opt/hivemq/certs
 
openssl genrsa -out /opt/hivemq/certs/ca.key 4096
 
openssl req -x509 -new -nodes -key /opt/hivemq/certs/ca.key -sha256 -days 3650 -subj "/C=CN/ST=Jiangsu/L=Suzhou/O=ChinaMobile/CN=www.ecloud.com" -out /opt/hivemq/certs/ca.crt
 
        操作2:使用生成的CA证书自签证书
 
openssl genrsa -out /opt/hivemq/certs/server.key 2048
 
openssl req -new -key /opt/hivemq/certs/server.key -subj "/C=CN/ST=Jiangsu/L=Suzhou/O=ChinaMobile/CN=www.ecloud.com" -out /opt/hivemq/certs/server.csr
 
echo "subjectAltName = IP.1:127.0.0.1" > /opt/hivemq/certs/extfile.cnf
 
openssl x509 -req -in /opt/hivemq/certs/server.csr -CA /opt/hivemq/certs/ca.crt -CAkey /opt/hivemq/certs/ca.key -CAcreateserial -extfile /opt/hivemq/certs/extfile.cnf -out /opt/hivemq/certs/server.crt -days 365 -sha256
 
rm -rf /opt/hivemq/certs/extfile.cnf
 
   2、生成HiveMQ建立tls连接所需的证书,即生成hivemq.jks证书
 
keytool -genkey -keyalg RSA -alias hivemq -keystore hivemq.jks -storepass  <存储密码> -validity 360 -keysize 2048
        基于边缘节点已有的server.crt证书生成用于安全连接的trust-store证书
 
keytool -import -file server.crt -alias hivemq -keystore hivemq-trust-store.jks -storepass <存储密码>
   3、创建HiveMQ配置文件conf.xml:
 
<?xml version="1.0"?>
<!--
  ~ Copyright 2019 dc-square GmbH
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~       http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<hivemq>
    <listeners>
        <tls-tcp-listener>
            <port>8883</port>
            <bind-address>0.0.0.0</bind-address>
            <tls>
                <keystore>
                    <path>/opt/hivemq/certs/hivemq.jks</path>
                    <password><存储密码></password>
                    <private-key-password><存储密码></private-key-password>
                </keystore>
                <truststore>
                  <path>/opt/hivemq/certs/hivemq-trust-store.jks</path>
                  <password><存储密码></password>
                </truststore>
              <client-authentication-mode>NONE</client-authentication-mode>
            </tls>
        </tls-tcp-listener>
    </listeners>
</hivemq>
   4、通过平台的容器应用创建一个安全连接的MQTT服务:
 
配置项
 

 
镜像
 
cis-hub-changsha-1.cmecloud.cn/edge-public/hivemq:latest
 
挂载hostPath
 
HiveMQ配置文件:
 
    主机目录: 步骤3创建的配置文件conf.xml存放目录
 
    容器挂载目录:/opt/hivemq/conf
 
HiveMQ证书:
 
    主机目录:hiveMQ证书存放目录
 
    容器挂载目录:/opt/hivemq/certs/
 
访问方式
 
端口映射
 
容器端口:8883
 
主机端口:任意可用端口
 
        应用创建成功后,您可以通过tls://<HiveMQ应用主机ip>:<访问方式的主机端口>访问安全连接的HiveMQ服务。
 

标签