ssl - 如何使用 SSL 将 sim800l 连接到代理?

标签 ssl mqtt esp32 broker sim800

我正在尝试连接到托管在 AWS 上的蚊子经纪人,在端口 8883 上,但到目前为止我还没有成功。
我正在使用 TinyGSM 和 PubSubClient 库。
GSM 模块连接到互联网,并且在没有 SSL 的代理中完美运行。但是当我尝试切换到 SSL 时,他无法连接,并且 MQTT 客户端返回 -2。但是这个错误不是很清楚,可以看到here在 PubSub 文档中。

#define MQTT_CONNECT_FAILED -2


这些是它为尝试连接到代理而执行的 AT 命令
AT+CIPRXGET=4,0

+CIPRXGET: 4,0,0

OK
AT+CIPSTATUS=0

+CIPSTATUS: 0,0,"TCP","3.13.162.221","8883","CLOSED"

OK
* Trying to connect to the MQTT Broker: <broker_url>
AT+CIPCLOSE=0,1

ERROR
AT+CIPSSL=1

OK
AT+CIPSTART=0,"TCP",<broker_url>,8883

OK
Failed to reconnect to the broker.
Status: -2
代码中一些有用的部分
void setupGSM() {
  SerialMon.println("Setup GSM...");
  
  modem.sendAT("+SSLOPT=1,1");
  if (modem.waitResponse() != 1) {
    SerialMon.printf("modem +SSLOPT=1,1 failed");
  }
  while (!modem.gprsConnect(APN, APN_USER, APN_KEY)) {
    SerialMon.println("GPRS Connection Failed");
    modem.restart();
    delay(1000);
  }
  SerialMon.println("GPRS Connection Success");
}

void reconnectMQTT() {
  while (!MQTT.connected()) {
    SerialMon.print("* Trying to connect to the MQTT Broker: ");
    SerialMon.println(BROKER_MQTT);
    initMQTT();

    if (MQTT.connect(ID_MQTT, MQTT_USERNAME, MQTT_KEY)) {
      SerialMon.println("Successfully connected to the MQTT broker!");
      MQTT.subscribe(RECEIVED_CREDITS);
    }
    else {
      SerialMon.println("Failed to reconnect to the broker.");
      SerialMon.print("Status: ");
      SerialMon.println(MQTT.state());
      delay(2000);
    }
  }
}
问题是,如何使用 sim800l 模块通过 SSL 连接到 MQTT 代理?
信息 :
调制解调器:SIMCOM_SIM800L R14.18
主处理器板:TTGO-T-Call ESP32
TinyGSM 版本:0.10.5

最佳答案

AWS IoT 代理需要使用 SSL 客户端证书。

关于ssl - 如何使用 SSL 将 sim800l 连接到代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63307495/

相关文章:

windows-10 - Paho MQTT 在编译期间抛出 undefined reference 错误

c - 将小块数据写入闪存页面

c++ - 返回类型为 struct 的函数在每次调用时不返回任何内容

python - 亚马逊 (AWS) API 网关 - 身份验证

mqtt - 当使用 MQTT 和 Qos 1 时,不需要从订阅者发送 PUBACK 数据包到代理吗?

java - 如何检查订户是否有效以接受针对 MQTT 上已发布主题收到的消息

c - ESP32 蓝牙连接在完成读取缓冲区后断开

python-3.x - 如何通过 SSL 使用 XMLRPC Client ServerProxy

codeigniter ion auth https 重定向无限循环

python - Discord Bot 未激活