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.

[参考译文] LAUNCHXL-CC3235SF:HTTPS 连接在使用游乐场目录的生产模式下不工作

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1240310/launchxl-cc3235sf-https-connection-not-working-in-production-mode-using-playground-catalog

器件型号:LAUNCHXL-CC3235SF
主题中讨论的其他器件:UNIFLASH

您好!

我已经在开发模式下烧录了映像、并且我能够成功建立 https 连接、并使用游乐场证书从云中获取数据。

在运行以下命令时、它返回-453 (SLNETERR_ESEC_SNO_verify)  

REt = SlNetSock_startSec (CLI->ssock、secAttribs、
SLNETSOCK_SEC_START_SECURITY_SESSION_ONLY |
SLNETSOCK_SEC_BIND_CONBIENT_ONLY);

该错误消息表明设备已连接但没有进行服务器验证。 但仍然成功接收了数据。

如果我在生产模式下烧录了相同的映像、则在上一行中搜索出代码。 它没有抛出-453.

这两种情况下、我都没有添加根 CA。

任何想法、为什么它不在生产模式下工作。

此致、

罗伯特

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

    尊敬的  Robert:

    您能否添加有关如何连接到服务器和连接参数的更多详细信息?

    在生产模式下编程时、当前发生了什么情况?

    在中、应 使用  Uniflash/ImageCreator (选择一种 LaunchXL-CC32xx)对 CC32XX 器件进行编程。  

    按照 https://www.ti.com/lit/swru469中的说明操作。

    此致、

    AVI

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

    您好、Avi:

    感谢您的快速回复。

    我刚刚从 LaunchPad 提出了一个简单的 POST 请求。 我不发送任何外部参数。

    #定义 HOSTNAME           "">https://xxxxxx.site"

    RET = HttpClient_CONNECT (httpClientHandle、HOSTNAME、0、0);

    在开发模式下、它会提供错误 I-453 (SLNETERR_ESEC_SNO_VERIFY)。 但仍保持连接并接收 数据。

    在生产模式下、它在 httpclient.c 文件的下面一行中点击。

    REt = SlNetSock_startSec (CLI->ssock、secAttribs、
    SLNETSOCK_SEC_START_SECURITY_SESSION_ONLY |
    SLNETSOCK_SEC_BIND_CONBIENT_ONLY);

    我做的唯一改变是下面的一个。 我想跳过生产模式下的服务器验证。

    请提供建议。

    此致、

    罗伯特

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

    尊敬的 Robert:

    我可以看到您正在尝试连接到安全服务器" #define HOSTNAME           "">https://xxxxxx.site""

    当主机名以 https 为前缀时、https 客户端模块会假设您正在安全地进行连接。

    但在您的代码中、您已调用"RET = HttpClient_connect (httpClientHandle、HOSTNAME、0、0);"  、它 不包含第三个输入中的"HttpClient_extSecParams"、表示未加载证书。

    为了安全连接、您需要将服务器 root_certCATE 添加到用户文件文件夹(或通过 uniflash 刻录到器件)。

    在代码中添加:

     

    HTTPClient_extSecParams extSecParams =
    {
        NULL,/* Private key */
        NULL,/* Client certificate */
        "root_ca.der" /* Root CA */
    };

    并将 Root CA 设置为您保存的证书的名称( 如果您不需要客户端验证、其他 CA 可设置为 NULL)

    致电:

    HTTPClient_connect(httpClientHandle, HOSTNAME, &extSecParams,0);

    此致、

    AVI。