Skip to content

在 BYOC 中配置 TLS/SSL

EMQX BYOC 部署使用 TLS/SSL 加密协议,建立安全的加密通信通道,在数据传输过程中保护数据的机密性。本页概述了如何在单向和双向认证模式下启用 TLS/SSL 通信,确保 MQTT 系统的安全通信。

下表概述了单向和双向认证模式下的不同认证要求。

认证方式是否支持自签名证书服务器证书证书链私有秘钥客户端 CA 证书
单向认证不支持需要需要需要不需要
双向认证不支持需要需要需要需要

单向认证模式

单向认证确保服务器(EMQX MQTT 代理)在 TLS/SSL 握手期间向客户端(设备或应用程序)呈现有效的证书。客户端通过将呈现的证书与受信任的证书颁发机构(CA)进行验证,以验证服务器的真实性。

在 BYOC 部署中,目前只接受受信任的 CA 颁发的证书。

证书组件

要为您的 BYOC 部署配置 TLS/SSL,您需要准备一个PEM 文件,这个文件对于启用 MQTT 客户端与 EMQX MQTT 代理之间的安全单向认证至关重要。PEM 文件需要包含以下组件:

  • 服务器证书:这是由受信任的证书颁发机构(CA)颁发的证书,使 EMQX MQTT 代理能够与客户端建立安全连接。

  • 证书链:包含完整的证书链,直至受信任的根 CA 证书。这使客户端设备能够验证服务器证书的真实性。

  • 私钥:与服务器证书关联的私钥是解密客户端与 EMQX MQTT 代理之间通信的关键。

证书格式和标准指南

在准备用于 TLS/SSL 配置的证书时,请考虑以下准则:

  • 证书必须指定加密算法和密钥大小。EMQX Cloud 支持 1024 位 RSA(RSA_1024)和 2048 位 RSA(RSA_2048)算法。

  • 证书必须符合 SSL/TLS X.509 第 3 版标准。它们应包含公钥、网站的完全限定域名(FQDN)或 IP 地址以及发布者信息。

  • 证书必须有效,在其有效期开始或结束之前的 30 天 内不能导入。

  • 确保证书、私钥和证书链使用 PEM 编码

  • 私钥必须无密码并支持 PKCS#1 和 PKCS#8。

  • 证书的加密算法必须与签发 CA 的加密算法匹配。例如,如果签发 CA 使用 RSA,则证书的密钥类型也应为 RSA。

这些准则确保了在您的 BYOC 部署中正确配置 TLS/SSL。

在 "byoc create" 命令中使用证书文件

创建 BYOC 部署时,在执行 ./byoc create 命令之前,请确保已将证书和私钥文件复制到您的 Ubuntu 环境目录,并且可以轻松访问。在执行 ./byoc create 命令部署您的 BYOC 环境时,参数中需提供服务器证书和私钥的 PEM 文件路径。关于如何配置参数,详见执行部署

创建双向认证

  1. 登录 EMQX Cloud 控制台
  2. 进入部署详情,点击 + TLS/SSL 配置 按钮,配置证书内容,您可以上传文件或者直接填写证书内容:
    • TLS/SSL 认证类型:选择双向认证(客户端和服务端相互验证证书)。
    • 公钥证书:自定义的服务端证书(包括证书链:通常第三方机构签发证书时会提供,如缺失您可以前往 证书链补全
    • 私钥:私有秘钥
    • 客户端 CA 证书:选择双向认证时,需要提供客户端的 CA 证书
  3. 填写完成后,点击确认

使用 MQTTX 测试双向 TLS

测试之前,请确保创建了认证信息,参考认证,您可以使用 MQTTX 连接和测试。在本教程中我们将使用用 MQTTX 进行测试:

  1. 新建连接,输入 Name,Client ID 随机生成即可。
  2. 选择 Host,填入部署的连接地址和端口。
    • 若选择 SSL 连接,选择 mqtts://8883 端口
    • 若选择 WebSocket with SSL,选择 wss://8084 端口
  3. 输入创建的认证信息:用户名和密码。
  4. 启用 SSL/TLS。
  5. 选择证书:
    • 如果是 CA 机构认证的服务端证书,点击 Self signed,在 CA File 填入证书。
    • 双向认证还需填入客户端证书以及客户端密钥。
  6. 点击右上角的连接

mqttx_tls

您还可以查看双向认证教程视频了解每一步的设置。

更新证书

当证书即将到期或需要替换时,您可以在部署详情页更新现有的 TLS/SSL 证书。

  1. 登录 EMQX Cloud 控制台
  2. 进入部署详情,在 TLS/SSL 配置部分找到需要更新的证书,点击操作列中的编辑图标。
  3. 在弹出的 TLS/SSL 配置对话框中,填写新的证书内容,您可以上传文件或直接填写证书内容:
    • TLS/SSL 类型:证书类型不可更改,与当前证书一致。
    • 公钥证书和证书链:填入新的服务端证书内容(包括证书链)。
    • 私钥:填入与新证书对应的私钥。
    • 客户端 CA 证书:双向认证时,还需填入客户端 CA 证书。
  4. 填写完成后,点击确认

删除证书

Note

仅 BYOC v4 部署支持删除 TLS/SSL 证书。BYOC v5 部署不支持此操作。

删除证书会断开客户端到 88838084 的连接,请确保这不会影响到您的业务。

  1. 登录 EMQX Cloud 控制台
  2. 进入部署详情,在 TLS/SSL 配置部分找到需要删除的证书,点击操作列中的删除图标。
  3. 在对话框点击确定,完成删除。