文档

在EMQX服务器配置私有证书单向认证

更新时间:

EMQX单向认证指的是客户端与服务端之间建立安全连接时,服务端只验证客户端是否信任服务器的证书,而不需要验证客户端的身份。本文介绍如何在EMQX服务器配置阿里云自签名X.509格式证书,实现EMQX的TLS/SSL单向认证。

重要

本文以Windows 10 64位操作系统、emqx-4.4.19-otp24.3.4.6-windows-amd64和mqttfx-1.7.1-windows-x64(模拟物联网设备)为例介绍。不同的操作系统、服务器或客户端设备,部署操作可能有所差异,如有问题,请联系产品技术专家进行咨询,详情请参见专家一对一服务

前提条件

已通过阿里云私有CA服务申请服务端证书。具体操作,请参见申请私有证书

说明

本文是以阿里云PCA自签服务端证书为例介绍,如果您需要使用CA中心颁发的阿里云服务端证书,您需要购买并申请SSL证书,具体操作,请参见购买SSL证书

步骤一:准备EMQX服务端证书

说明

本文是以阿里云PCA自签证书为例介绍,如果您需要配置CA中心颁发的阿里云服务端证书,请参见下载SSL证书到本地

  1. 登录数字证书管理服务控制台

  2. 在左侧导航栏,选择证书管理 > PCA证书管理

  3. 准备证书链文件cacert.pem

    1. 私有CA页签,定位到目标子CA,在操作列,单击详情

      image

    2. 详情面板,复制子CA证书内容,然后在本地新建一个TXT文件,将该内容粘贴进去,并将文件命名为cacert.pem。

  4. 准备证书文件cert.pem和证书私钥文件key.pem

    1. 私有CA页签,定位到目标子CA,在操作列,单击证书列表

      image.png

    2. 证书列表页面,定位到目标服务端证书,在操作列,单击下载

    3. 证书下载对话框,选择证书格式为PEM,单击确认并下载

    4. 解压证书压缩包,将证书文件(PEM格式)命名为cert.pem。在Shell终端执行openssl rsa -in <domain.key> -out key.pem,将证书私钥文件解密,并保存为key.pem。

      说明

      domain.key需替换为实际的证书私钥文件。

步骤二:替换EMQX服务端默认证书

  1. 打开EMQX证书配置目录(默认为\emqx\etc\certs),将步骤一准备的服务端证书文件(cert.pem、cacert.pem、key.pem)替换certs目录原有的文件。

    image.png

  2. 在本地操作系统,右键单击image.png图标,并单击Windows PowerShell (管理员)(A)

  3. 进入\emqx\bin目录,执行以下命令,启动EMQX。

    ./emqx start

步骤三:配置MQTT客户端证书

  1. 打开MQTT客户端,单击image.png图标。

  2. 按照下图指引,配置Broker Address(证书绑定的域名)和CA certificate file(服务端证书链文件cacert.pem),单击Apply,单击OK

    image.png

步骤四:测试单向认证

测试前,您需要在本地操作系统C:\Windows\System32\drivers\etc目录下的hosts文件添加域名映射,即本地IP与证书绑定域名映射,格式为127.0.0.1 <domain_name>

  1. 在MQTT客户端,单击Connect

  2. Subscribe页签,输入EMQX默认的主题testtopic/#,单击Subscribe,并等待接收服务端消息。

    image.png

  3. 在本地操作系统的浏览器中输入localhost:18083,进入EMQX管理界面。

  4. 在左侧导航栏,选择工具 > Webcocket

  5. 连接区域,单击连接

  6. 消息区域。输入消息,单击发送

    image.png

  7. 在MQTT客户端,如果接收到消息,表示证书安装成功。

    image.png

  • 本页导读 (1)