MQTT文档

ssl安全证书环境缺失

有部分用户在开发测试的环境中运行都没问题,但在部分生产服务器、docker等环境中mqtt连接可能会出现ssl证书错误等问题,可能的原因就是运行环境中没有安装证书相关依赖,这是就需要现在docker环境中安装类似ca-certificates的证书依赖软件,然后通过环境变量指定证书所在文件夹。

Ubuntu系统的镜像为例:

  1. 在容器中安装 SSL 证书 可以通过以下步骤在容器中安装 SSL 证书:
apt-get update
apt-get install -y ca-certificates
  1. 指定环境变量

可以将以下环境变量添加到容器中以指定 SSL 证书的位置: 在 Ubuntu 容器中,可以将以下环境变量添加到 Dockerfile 中:

ENV SSL_CERT_DIR=/etc/ssl/certs

如果还是有证书错误的情况

  • 可以尝试将CA机构的根证书 Digicert-OV-DV-root.cer 直接安装导入到运行环境中,具体安装方式参考实际使用的操作系统环境。

  • 检查当前程序运行环境是否支持TLS 1.2。

  1. Windows 支持 TLS 1.2 的最低版本如下

    • Windows 7 并已安装服务包 SP1
    • Windows Server 2008 R2 并已安装服务包 SP1
    • Windows 8 及更高版本(8.1、10)
    • Windows Server 2012 及更高版本(2012 R2、2016、2019)
  2. Linux 系统中,支持 TLS 1.2

    • 内核版本为2.6.30 及以上版本
    • 主流 Linux 发行版支持 TLS 1.2 的最低版本如下:
      • Ubuntu 12.04 (Precise Pangolin) 及以上版本
      • Debian 7 (Wheezy) 及以上版本
      • CentOS 6.5 及以上版本
      • Red Hat Enterprise Linux 6.5 及以上版本
      • Fedora 20 及以上版本 以上版本已经内置 OpenSSL 1.0.1 及以上版本,默认支持 TLS 1.2。