This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/CC3200:如何使用 Broker CloudMQTT 设置 CC3200 MQTT 客户端 SSL

Guru**** 2589265 points
Other Parts Discussed in Thread: CC3200SDK, UNIFLASH, CC3200

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/857125/ccs-cc3200-how-to-setup-cc3200-mqtt-client-ssl-with-broker-cloudmqtt

器件型号:CC3200
主题中讨论的其他器件: UNIFLASH

工具/软件:Code Composer Studio

您好 TI

我尝试使用 CC3200SDK 1.4中的示例"mqtt_client_tirtos"与 代理"CloudmqTT"连接 mqTT SSL。

但无法连接它。

请帮助我、如何修改连接此代理的程序。

谢谢你

RATWO

/*定义中介程序 IP 地址和端口号*/
#define SERVER_ADDRESS "tailor.cloudmqtt.com
#define SERVER_IP_ADDRESS "192.168.178.67"#define
PORT_NUMBER 17316
#define secured_port_number 27316
#define loopback_port 1882年 

#define SL_SSL_CA_CERT"/cert/ca.cer 
char * secureFiles[4]={ null、 null、 SL_SSL_CA_CERT、 空 };
/*连接配置*/ connect_config usr_connect_config[]= { { { SL_MQTT_NETCONN_URL、 服务器地址、 Secured_port_number、 SL_SO_SEC_METHOD_SSLv3_TLSv1_2、 SL_SEC_MASK_SECURE_DEFAULT、 4、 secureFiles }、 服务器模式、 对、 }、 null、 "用户1"、 null、 null、 对、 keep_alive_timer、 {MQTT_Recv、SL_MqttEvt、SL_MqttDisconnect}、 Topic_count、 {TOPIC1、topic2、TOPIC3}、 {QOS2、QOS2、QOS2}、 {will _topic、will _MSG、will _QoS、will _retain}、 false } ;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您可以尝试执行以下几个调试步骤:

    1. 如果 只提供 MQTT 服务器的根 CA 证书、请尝试将 MQTTClient_ConnParams.nFiles 设置为1。
    2. 仔细检查并确保您的服务器使用了正确的根 CA 证书。 是否已确保将证书格式化为 DER 格式而不是 PEM 格式? 您是否使用 Uniflash 将证书刷写到 CC3200中?

    请告诉我、这是否对您无效。 如果仍有问题、则在您遇到问题时、CC3200 MQTT 演示的终端输出以及返回的错误代码将非常有用。

    此致、

    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好,Michael

    我的步骤

    1.从 CloudMQTT 下载.cer

    在 destop 上保存示例认证文件"testcer.cer"。

    3.按如下方式配置程序。

    /*定义中介程序 IP 地址和端口号*/
    #define SERVER_ADDRESS "tailor.cloudmqtt.com
    #define SERVER_IP_ADDRESS "192.168.178.67"#define
    PORT_NUMBER 17316
    #define secured_port_number 27316 
    #define SL_SSL_CA_CERT"/cert/testcer.cer
    char * secureFiles[4]={
    null、
    null、
    SL_SSL_CA_CERT、
    空
    };
    //连接配置*/
    connect_config usr_connect_config[]=
    {
    {
    {
    {
    SL_MQTT_NETCONN_URL、
    服务器地址、
    Secured_port_number、
    SL_SO_SEC_METHOD_SSLv3_TLSv1_2、
    SL_SEC_MASK_SECURE_DEFAULT、
    4、
    secureFiles
    }、
    服务器模式、
    对、
    }、
    null、
    "用户1"、
    "uitodjpc"、
    "92S2iAxxxxxx"、
    对、
    keep_alive_timer、
    {MQTT_Recv、SL_MqttEvt、SL_MqttDisconnect}、
    Topic_count、
    {TOPIC1、topic2、TOPIC3}、
    {QOS2、QOS2、QOS2}、
    {will _topic、will _MSG、will _QoS、will _retain}、
    否
    }
    }; 

     UniFlash 程序如下所示。

    CCS 8.3.0的 View 终端调试程序

    现在、我无法通过以下方法使用 SSL 端口连接 CloudMQTT。

    请帮我、如何连接。

    谢谢你

    RATWO

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ratwo、

    您使用的 CloudMQTT 服务器存在几个问题。

    首先,根 CA 证书不是您选择的 DST 根 CA 证书,而实际上是 Comodo RSA 证书颁发机构证书 我在 MQTT 连接期间通过监听 TLS 握手数据包来检查这一点。

    第二个问题是、即使您要提供 Comodo RSA 证书、您也无法使用 CC3200连接到服务器。 这是因为它不支持解析 RSA 密钥大小大于2048字节的证书文件。 如需更多信息、请参阅此处的 E2E 主题:

    https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/t/748768?CC3200-SSL-and-enterprise-certificate

    现在、如果您希望继续使用 CloudMQTT 服务、则应升级到 CC3220或 CC3235。 这些设备支持4096个 RSA 密钥。 或者,您可以使用另一个服务,该服务没有包含 RSA 4096密钥的证书链。 在任何情况下、您都无法通过 TLS 将 CC3200连接到该 CloudMQTT 服务。

    如果您需要更多澄清或对 CC3200有进一步的问题、请告诉我。

    此致、

    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好, Michael

    好的、我将使用 CC3220或 CC3235重试

    谢谢你

    RATWO