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/CC3120BOOST:firewbase 实时数据库与 CC3120 Boost simplelink 之间的通信存在问题、并且根 CA 缺失

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/842086/ccs-cc3120boost-issue-with-communication-between-firebase-real-time-database-and-cc3120-boost-simplelink-and-missing-root-ca

器件型号:CC3120BOOST
主题中讨论的其他器件:CC3120

工具/软件:Code Composer Studio

你好

我在使用 RESTful API 从 CC3120 WiFi 模块通信 firebase 实时数据库时遇到问题。 我发现其根 CA 在 CC3120 Simplelink 根 CA 目录中缺失。 firewBase 使用"GTS CA 101"作为其根 CA、它在 CC3120根 CA 目录中缺失。 您能否帮助检查是否仍然可以与燃烧室进一步通信? 如果是、您能否展示一种在内部添加缺失证书的方法? 谢谢你。

以下链接显示了 simplelink 根 CA 目录。

http://software-dl.ti.com/ecs/SIMPLELINK_CC3220_SDK/1_02_02_00/exports/tools/cc32xx_tools/certificate-catalog/readme.html?fbclid=IwAR1__21ICs5dfXOQ1HVTQwEm078ud0DCkElIlThLWzvdlhnSYlWVXmMrJCw

此链接指示防火墙根 CA。 可以在 https://www.digicert.com/help/上检查防火墙根 CA  、其中 https://minmin-68c89.firebaseio.com 是要搜索的主机。

此致

最小值

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

    您好、Min、

    GTS CA 101证书似乎不是根 CA。 它看起来是由 Google Trust Services - GlobalSign Root CA-R2证书签名的、它确实是根 CA。 GlobalSign Root CA-R2证书出现在 CC3220的根 CA 目录中、因此不会为 TLS 连接带来任何问题。

    您是否在连接到您的防火墙服务器时尝试提供 GlobalSign Root CA-R2证书? 如果是、您会得到什么错误代码?

    此致、
    Michael

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

    你好、雷蒙德

    感谢您的建议。 我已更新程序中的 GlobalSign CA-R2 Root CA (DER 格式)。  从另一个源检索 GlobalSign CA-R2时、会出现许多以-456错误(sl_error_BSD_ESECBADCAFILE)开头的错误、以及-688错误、最后在另一个源中出现-468错误(sl_error_BSD_ESECUNKNOWNROOTCA)。 最终源根 CA 从 http://crl.globalsign.net/root-r2.crl 检索。 我是否可以知道该误差是如何解释的? 根据 TI 证书处理文档、它提到"连接已创建(接受了 SetSockOpt 设置的证书)、但在已安装的目录中找不到服务器的证书签名"。 根 CA 中缺少任何签名?

    您是否再次提出任何建议、以纠正下面提到的根 CA 或代码实施问题? 以下代码用于连接到防火墙服务器。  

    #define CA_file_name "globalsign.der"

    uint8_t DigiCert_root_crt[]={//从 http://crl.globalsign.net/root-r2.crl 检索源
    0x2D、0x2D、0x2D、0x2D、0x2D、 0x42、0x45、0x47、0x49、0x4E、 0x20、0x43、0x45、0x52、0x54、 0x49、
    0x46、0x49、0x43、0x41、0x54、 0x45、0x2D、0x2D、0x2D、0x2D、 0x2D、0x0A、0x4D、0x49、0x49、 0x45、
    0x54、0x44、0x43、0x43、0x41、 0x7A、0x53、0x67、0x41、0x77、 0x49、0x42、0x41、0x67、0x49、 0x4C、
    0x42、0x41、0x41、0x41、0x41、0x41、 0x41、0x41、0x42、0x4C、0x30、 0x37、0x68、0x53、0x56、0x49、 0x77、
    0x44、0x51、0x59、0x4A、0x4B、 0x6f、0x5A、0x49、0x68、0x76、 0x63、0x4E、0x41、0x51、0x45、 0x46、
    0x42、0x51、0x41、0x77、0x56、 0x7A、0x45、0x4C、0x4D、0x41、 0x6B、0x47、0x0A、0x41、0x31、 0x55、
    0x45、0x42、0x68、0x4D、0x43、 0x51、0x6B、0x55、0x78、0x47、 0x54、0x41、0x58、0x42、0x67、 0x4E、
    0x56、0x42、0x41、0x6f、0x54、 0x45、0x45、0x64、0x73、0x62、 0x32、0x4A、0x68、0x62、0x46、 0x4E、
    0x70、0x5A、0x32、0x34、0x67、 0x62、0x6E、0x59、0x74、0x63、 0x32、0x45、0x78、0x45、0x44、 0x41、
    0x4F、0x42、0x67、0x4E、0x56、 0x42、0x41、0x73、0x54、0x42、 0x31、0x4A、0x76、0x0A、0x62、 0x33、
    0x51、0x67、0x51、0x30、0x45、 0x78、0x47、0x7A、0x41、0x5A、 0x42、0x67、0x4E、0x56、0x42、 0x41、
    0x4D、0x54、0x45、0x6B、0x64、 0x73、0x62、0x32、0x4A、0x68、 0x62、0x46、0x4E、0x70、0x5A、 0x32、
    0x34、0x67、0x55、0x6D、0x39、 0x76、0x64、0x43、0x42、0x44、 0x51、0x54、0x41、0x65、0x46、 0x77、
    0x30、0x77、0x4E、0x6A、0x45、 0x79、0x4D、0x54、0x55、0x77、 0x4F、0x44、0x41、0x77、0x0A、 0x4D、
    0x44、0x42、0x61、0x46、0x77、 0x30、0x79、0x4F、0x44、0x41、 0x78、0x4D、0x6A、0x67、0x78、 0x4D、
    0x6A、0x41、0x77、0x4D、0x44、 0x42、0x61、0x4D、0x45、0x77、 0x78、0x49、0x44、0x41、0x65、 0x42、
    0x67、0x4E、0x56、0x42、0x41、 0x73、0x54、0x46、0x30、0x64、 0x73、0x62、0x32、0x4A、0x68、 0x62、
    0x46、0x4E、0x70、0x5A、0x32、 0x34、0x67、0x55、0x6D、0x39、 0x76、0x64、0x43、0x42、0x44、 0x0A、
    0x51、0x53、0x41、0x74、0x49、 0x46、0x49、0x79、0x4D、0x52、 0x4D、0x77、0x45、0x51、0x59、 0x44、
    0x56、0x51、0x51、0x4B、0x45、 0x77、0x70、0x48、0x62、0x47、 0x39、0x69、0x59、0x57、0x78、 0x54、
    0x61、0x57、0x64、0x75、0x4D、 0x52、0x4D、0x77、0x45、0x51、 0x59、0x44、0x56、0x51、0x51、 0x44、
    0x45、0x77、0x70、0x48、0x62、 0x47、0x39、0x69、0x59、0x57、 0x78、0x54、0x61、0x57、0x64、 0x75、
    0x0A、0x4D、0x49、0x49、0x42、 0x49、0x6A、0x41、0x4E、0x42、 0x67、0x6B、0x71、0x68、0x6B、 0x69、
    0x47、0x39、0x77、0x30、0x42、 0x41、0x51、0x45、0x46、0x41、 0x41、0x4F、0x43、0x41、0x51、 0x38、
    0x41、0x4D、0x49、0x49、0x42、 0x43、0x67、0x4B、0x43、0x41、 0x51、0x45、0x41、0x70、0x73、 0x38、
    0x6B、0x44、0x72、0x34、0x75、 0x62、0x79、0x69、0x5A、0x52、 0x55、0x4C、0x45、0x71、0x7A、 0x34、
    0x68、0x0A、0x56、0x4A、0x73、 0x4C、0x30、0x33、0x2B、0x45、 0x63、0x50、0x6f、0x53、0x73、 0x38、
    0x75、0x2F、0x68、0x31、0x2F、 0x47、0x66、0x34、0x62、0x54、 0x73、0x6A、0x42、0x63、0x31、 0x76、
    0x32、0x74、0x38、0x58、0x76、 0x63、0x35、0x66、0x68、0x67、 0x6C、0x67、0x6D、0x53、0x45、 0x50、
    0x58、0x51、0x55、0x39、0x37、 0x37、0x65、0x33、0x35、0x7A、 0x69、0x4B、0x78、0x53、0x69、 0x48、
    0x74、0x4B、0x0A、0x70、0x73、 0x70、0x4A、0x70、0x6C、0x36、 0x6f、0x70、0x34、0x78、0x61、 0x45、
    0x62、0x78、0x36、0x67、0x75、 0x75、0x2B、0x6A、0x4F、0x6D、 0x7A、0x72、0x4A、0x59、0x6C、 0x42、
    0x35、0x64、0x4B、0x6D、0x53、 0x6f、0x48、0x4C、0x37、0x51、 0x65、0x64、0x37、0x2B、0x4B、 0x44、
    0x37、0x55、0x43、0x66、0x42、 0x75、0x57、0x75、0x4D、0x57、 0x35、0x4F、0x69、0x79、0x38、 0x31、
    0x68、0x4B、0x35、0x0A、0x36、 0x31、0x6C、0x39、0x34、0x74、 0x41、0x47、0x68、0x6C、0x39、 0x65、
    0x53、0x57、0x71、0x31、0x4F、 0x56、0x36、0x49、0x4E、0x4F、 0x79、0x38、0x65、0x41、0x77、 0x49、
    0x6D、0x49、0x52、0x73、0x71、 0x4D、0x31、0x4C、0x74、0x4B、 0x42、0x39、0x44、0x48、0x6C、 0x4E、
    0x38、0x4C、0x67、0x74、0x79、 0x79、0x48、0x4B、0x31、0x57、 0x78、0x62、0x66、0x65、0x47、 0x67、
    0x4B、0x59、0x53、0x68、0x0A、 0x2B、0x64、0x4F、0x55、0x53、 0x63、0x73、0x6B、0x59、0x70、 0x45、
    0x67、0x76、0x4E、0x30、0x4C、 0x31、0x64、0x6E、0x4D、0x2B、 0x65、0x6f、0x6E、0x43、0x69、 0x74、
    0x7A、0x6B、0x63、0x61、0x64、 0x47、0x36、0x7A、0x49、0x79、 0x2B、0x6A、0x67、0x6f、0x50、 0x51、
    0x76、0x6B、0x49、0x74、0x4E、 0x2B、0x37、0x41、0x32、0x47、 0x2F、0x59、0x5A、0x65、0x6f、 0x58、
    0x67、0x62、0x66、0x4A、0x68、 0x0A、0x45、0x34、0x68、0x63、 0x6E、0x2B、0x43、0x54、0x43、 0x6C、
    0x47、0x58、0x69、0x6C、0x72、 0x4F、0x72、0x36、0x76、0x56、 0x39、0x36、0x6f、0x4A、0x71、 0x6D、
    0x43、0x39、0x33、0x4E、0x6C、 0x66、0x33、0x33、0x4B、0x70、 0x59、0x42、0x4E、0x65、0x41、 0x41、
    0x48、0x4A、0x53、0x76、0x6f、 0x2F、0x70、0x4F、0x6f、0x48、 0x41、0x79、0x45、0x43、0x6A、 0x6f、
    0x4C、0x4B、0x41、0x38、0x4B、 0x62、0x0A、0x6A、0x77、0x49、 0x44、0x41、0x51、0x41、0x42、 0x6f、
    0x34、0x49、0x42、0x49、0x6A、 0x43、0x43、0x41、0x52、0x34、 0x77、0x44、0x67、0x59、0x44、 0x56、
    0x52、0x30、0x50、0x41、0x51、 0x48、0x2F、0x42、0x41、0x51、 0x44、0x41、0x67、0x45、0x47、 0x4D、
    0x41、0x38、0x47、0x41、0x31、 0x55、0x64、0x45、0x77、0x45、 0x42、0x2F、0x77、0x51、0x46、 0x4D、
    0x41、0x4D、0x42、0x41、0x66、 0x38、0x77、0x0A、0x48、0x51、 0x59、0x44、0x56、0x52、0x30、 0x4F、
    0x42、0x42、0x59、0x45、0x46、 0x4A、0x76、0x69、0x42、0x31、 0x64、0x6E、0x48、0x42、0x37、 0x41、
    0x61、0x67、0x62、0x65、0x57、 0x62、0x53、0x61、0x4C、0x64、 0x2F、0x63、0x47、0x59、0x59、 0x75、
    0x4D、0x45、0x63、0x47、0x41、 0x31、0x55、0x64、0x49、0x41、 0x52、0x41、0x4D、0x44、0x34、 0x77、
    0x50、0x41、0x59、0x45、0x56、 0x52、0x30、0x67、0x0A、0x41、 0x44、0x41、0x30、0x4D、0x44、 0x49、
    0x47、0x43、0x43、0x73、0x47、 0x41、0x51、0x55、0x46、0x42、 0x77、0x49、0x42、0x46、0x69、 0x5A、
    0x6f、0x64、0x48、0x52、0x77、 0x63、0x7A、0x6f、0x76、0x4C、 0x33、0x64、0x33、0x64、0x79、 0x35、
    0x6E、0x62、0x47、0x39、0x69、 0x59、0x57、0x78、0x7A、0x61、 0x57、0x64、0x75、0x4C、0x6D、 0x4E、
    0x76、0x62、0x53、0x39、0x79、 0x5A、0x58、0x42、0x76、0x0A、 0x63、0x32、0x6C、0x30、0x62、 0x33、
    0x4A、0x35、0x4C、0x7A、0x41、 0x7A、0x42、0x67、0x4E、0x56、 0x48、0x52、0x38、0x45、0x4C、 0x44、
    0x41、0x71、0x4D、0x43、0x69、 0x67、0x4A、0x71、0x41、0x6B、 0x68、0x69、0x4A、0x6f、0x64、 0x48、
    0x52、0x77、0x4F、0x69、0x38、 0x76、0x59、0x33、0x4A、0x73、 0x4C、0x6D、0x64、0x73、0x62、 0x32、
    0x4A、0x68、0x62、0x48、0x4E、 0x70、0x5A、0x32、0x34、0x75、 0x0A、0x62、0x6D、0x56、0x30、 0x4C、
    0x33、0x4A、0x76、0x62、0x33、 0x51、0x75、0x59、0x33、0x4A、 0x73、0x4D、0x44、0x30、0x47、 0x43、
    0x43、0x73、0x47、0x41、0x51、 0x55、0x46、0x42、0x77、0x45、 0x42、0x42、0x44、0x45、0x77、 0x4C、
    0x7A、0x41、0x74、0x42、0x67、 0x67、0x72、0x42、0x67、0x45、 0x46、0x42、0x51、0x63、0x77、 0x41、
    0x59、0x59、0x68、0x61、0x48、 0x52、0x30、0x63、0x44、0x6f、 0x76、0x0A、0x4C、0x32、0x39、 0x6A、
    0x63、0x33、0x41、0x75、0x5A、 0x32、0x78、0x76、0x59、0x6D、 0x46、0x73、0x63、0x32、0x6C、 0x6E、
    0x62、0x69、0x35、0x6A、0x62、 0x32、0x30、0x76、0x63、0x6D、 0x39、0x76、0x64、0x48、0x49、 0x78、
    0x4D、0x42、0x38、0x47、0x41、 0x31、0x55、0x64、0x49、0x77、 0x51、0x59、0x4D、0x42、0x61、 0x41、
    0x46、0x47、0x42、0x37、0x5A、 0x68、0x70、0x46、0x44、0x5A、 0x66、0x4B、0x0A、0x69、0x56、 0x41、
    0x76、0x66、0x51、0x54、0x4E、 0x4E、0x4B、0x6A、0x2F、0x2F、 0x50、0x31、0x4C、0x4D、0x41、 0x30、
    0x47、0x43、0x53、0x71、0x47、 0x53、0x49、0x62、0x33、0x44、 0x51、0x45、0x42、0x42、0x51、 0x55、
    0x41、0x41、0x34、0x49、0x42、 0x41、0x51、0x43、0x5A、0x49、 0x69、0x76、0x75、0x69、0x6A、 0x4C、
    0x54、0x44、0x41、0x64、0x2B、 0x33、0x52、0x73、0x67、0x4B、 0x31、0x42、0x71、0x0A、0x6C、 0x70、
    0x45、0x47、0x32、0x72、0x35、 0x75、0x31、0x33、0x4B、0x57、 0x72、0x56、0x4D、0x2F、0x66、 0x76、
    0x57、0x50、0x51、0x75、0x66、 0x51、0x36、0x32、0x53、0x6C、 0x5A、0x66、0x4C、0x7A、0x34、 0x7A、
    0x30、0x2F、0x57、0x7A、0x45、 0x4D、0x66、0x48、0x6D、0x45、 0x4F、0x70、0x65、0x4D、0x44、 0x78、
    0x2B、0x75、0x77、0x62、0x7A、 0x79、0x36、0x37、0x69、0x67、 0x37、0x30、0x48、0x39、0x0A、 0x76、
    0x44、0x47、0x70、0x2F、0x4D、 0x6C、0x43、0x35、0x6B、0x53、 0x2B、0x48、0x6C、0x62、0x4B、 0x64、
    0x59、0x75、0x79、0x53、0x54、 0x47、0x5A、0x2F、0x75、0x72、 0x70、0x63、0x57、0x53、0x47、 0x65、
    0x6f、0x2F、0x6C、0x31、0x57、 0x45、0x52、0x51、0x2B、0x68、 0x41、0x75、0x7A、0x45、0x4D、 0x34、
    0x74、0x73、0x59、0x69、0x35、 0x6C、0x30、0x4F、0x47、0x47、 0x72、0x4A、0x49、0x43、0x4D、 0x0A、
    0x2B、0x61、0x67、0x37、0x31、 0x30、0x6E、0x57、0x5A、0x6f、 0x6f、0x59、0x63、0x38、0x79、 0x38、
    0x42、0x6A、0x6D、0x4C、0x45、 0x44、0x49、0x4F、0x44、0x64、 0x4F、0x78、0x39、0x2B、0x39、 0x6D、
    0x45、0x78、0x42、0x5A、0x53、 0x4D、0x6A、0x50、0x41、0x63、 0x71、0x5A、0x7A、0x4A、0x42、 0x79、
    0x6D、0x4E、0x73、0x36、0x37、 0x63、0x75、0x6E、0x75、0x2B、 0x4A、0x73、0x63、0x49、0x36、 0x6D、
    0x0A、0x6E、0x6D、0x68、0x6A、 0x37、0x59、0x2B、0x33、0x4C、 0x51、0x57、0x4A、0x7A、0x74、 0x6C、
    0x55、0x39、0x6B、0x36、0x72、 0x48、0x6B、0x62、0x62、0x4D、 0x45、0x6B、0x2F、0x39、0x6D、 0x72、
    0x67、0x41、0x66、0x43、0x38、 0x7A、0x59、0x54、0x55、0x4F、 0x66、0x64、0x56、0x6A、0x67、 0x4D、
    0x56、0x63、0x64、0x4F、0x64、 0x4E、0x4F、0x32、0x64、0x78、 0x74、0x48、0x49、0x71、0x73、 0x57、
    0x45、0x0A、0x4F、0x54、0x73、 0x4E、0x2F、0x53、0x6B、0x6E、 0x55、0x68、0x36、0x44、0x71、 0x30、
    0x67、0x6A、0x68、0x56、0x68、 0x51、0x73、0x35、0x58、0x47、 0x43、0x37、0x4D、0x6D、0x34、 0x78、
    0x59、0x74、0x71、0x44、0x44、 0x63、0x41、0x31、0x42、0x74、 0x58、0x4E、0x45、0x4D、0x7A、 0x53、
    0x71、0x68、0x52、0x35、0x72、 0x50、0x49、0x42、0x76、0x62、 0x51、0x34、0x67、0x66、0x77、 0x76、
    0x7A、0x67、0x0A、0x2D、0x2D、 0x2D、0x2D、0x2D、0x45、0x4E、 0x44、0x20、0x43、0x45、0x52、 0x54、
    0x49、0x46、0x49、0x43、0x41、 0x54、0x45、0x2D、0x2D、0x2D、 0x2D、0x2D、0x0A、
    };

    int DigiCert 根 crt_len = sizeof (DigiCert 根 CRT);

    #define CERT_WRITE_TUNK_SIZE 1500
    int32_t writeCert (uint8_t *数据、uint32_t len)

    int32_t fHdl;
    //uint8_t filename[]="/cert/iot/cert.der;
    int32_t status;
    uint32_t 偏移;
    uint32_t writeLen;
    fHdl = sl_FsOpen (CA_FILE_NAME、SL_FS_CREATE | SL_FS_OVERWRITE |
    SL_FS_CREASE_FAILSAFE | SL_FS_CREASE_MAX_SIZE (len)、NULL);
    if (fHdl >= 0)

    偏移= 0;
    操作

    如果(len < CERT_WRITE_TUNK_SIZE)

    writeLen = len;

    其他

    writeLen = CERT_WRITE_TUNK_SIZE;

    status = sl_FsWrite (fHdl、offset、&(data[offset])、writeLen);
    offset += writeLen;
    } while (offset < len);
    sl_FsClose (fHdl、0、0、0);
    返回0;

    其他

    返回-1;

    静态 Int32_t createConnectionforWeather (空)

    SlSockAddrIn_t Addr;

    int16_t SD = 0;
    int16_t AddrSize = 0;
    int32_t RET_val = 0;

    Addr.Sin_Family = SL_AF_iNet;
    Addr.Sin_port = sl_Htons (443);

    /*将 DestinationIP endianity 更改为 big endian */
    Addr.sin addr.s_addr = sl_Htonl (App_CB.weatherDestinationIP);

    AddrSize = sizeof (SlSockAddrIn_t);

    SD = SL_Socket (SL_AF_iNet、SL_SOCK_STREAM、SL_SEC_Socket);
    if (SD < 0)

    UART_PRINT ("创建套接字时出错\n\n\r\n\r\n");
    ASSERT_ON_ERROR (SD);

    writeCert (DigiCert 根 CRT、 DigiCert 根 CRT);
    /*设置以下选项以启用客户端身份验证*/
    SL_SetSockOpt (SD、SL_SOL_Socket、SL_SO_SECURE_FILES_CA_FILE_NAME、CA_FILE_NAME、strlen (CA_FILE_NAME));
    //_i16状态;
    //status = sl_SetSockOpt (SD、sl_SOL_Socket、_SL_SO_SECURE_DOMAIN_NAME_VERIFICATION、"minmin-68c89.firebaseio.com",strlen("minmin-68c89.firebaseio.com"));

    //sl_SetSockOpt (SD、sl_SOL_socket、sl_SO_SECURE_FILESS_PRIVATE_FILE_NAME、PRIVATE_KEY_FILE、strlen (PRIVATE_KEY_FILE));

    //sl_SetSockOpt (SD、sl_SOL_Socket、sl_SO_SECURE_FILEST_CERTIFICATE_FILE_NAME、trusted_CERT_chain、strlen (trusted_CERT_chain));

    RET_val = sl_Connect (SD、(SlSockAddr_t *)&Addr、AddrSize);
    if (ret_val < 0)

    /*错误*/
    UART_PRINT ("连接到服务器时出错)\n\n\r\n\r\n");
    ASSERT_ON_ERROR (RET_val);

    返回 SD;

    此致

    最小值

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

    您好、Min、

    如果您在开发模式下将 CC3120与运动场根 CA 目录配合使用、则运行到错误-468是正常的。 这是因为游乐场根 CA 目录仅出于安全原因包含开发证书。 您可以忽略错误-468、因为它只是一个警告。 当您遇到该错误时、底层 TLS 套接字仍处于连接状态。

    您应该继续使用 GlobalSign 证书、该证书会向您发出-468警告、并查看您是否可以通过该 TLS 套接字发送数据。

    此致、

    Michael

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

    你(们)好,Michael

    感谢你的帮助。 错误处理程序被禁用、它可以接收数据。 但是、接收数据有大约3秒的延迟。 TLS 套接字是否会导致延迟?是否有任何建议可降低延迟? 因为正常 http 连接的运行速度比使用 TLS 套接字的 https 快得多。

    此致

    最小值

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

    您好、Min、

    这3秒延迟是 TLS 连接延迟、还是发送请求和数据响应之间的延迟?

    通常、执行 TLS 连接时、预计会出现~1-2秒的延迟、具体取决于服务器使用的密码套件以及 CC3220的专用加密硬件是否可以加速。 假设您的 HTTPS 请求在代码中具有最高优先级的线程、那么您将无法做太多事情来加快连接时间和完整的 HTTPS 请求时间。

    此致、
    Michael

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

    你(们)好,Michael

    导致3s 延迟的是 TLS。 但我只进行了一次套接字连接、现在它能够持续发送和接收数据、因此可以减少发送请求和响应请求之间的时间间隔、而忽略 TLS 延迟、因为它是第一次连接。 现在,我遇到一个问题,即在发送和接收数据一段时间后,在不关闭套接字的情况下出现错误-1。 这可能是关闭套接字后出现错误-1的超时错误。

    我现在的目的是在不设置超时的情况下连续发送和接收数据。 您是否有任何实施建议?

    此致

    最小值

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

    大家好、Michael / TI 专家

    我自上周以来没有看到您的回复。 我是否可以让您建议在不关闭套接字的情况下连续接收数据、或者有任何快速的好方法?

    此致
    最小值

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

    您好、Min、

    您可以使用 sl_setSockOpt() API 以及  sl_SOL_Socket、sl_SO_KeepAliveTime 选项手动设置保活时间。  

    如果将 TCP keepalive 时间设置得更短不能解决问题、您可能需要查看 firewbase 的 API 文档。 他们的 TCP keepalive 过程可能与 CC3220自动执行的操作不同。 我们的器件将在每个保活间隔发送 NULL 数据包、但可能 firewbase 需要您发送更具体的数据包、或者它可能完全禁止长 TCP 连接。

    此致、

    Michael

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

    您好、Machael

    感谢您解决问题。 我将其修改为在其关闭时再次打开套接字、因为它是防火墙问题。 还有一个问题我想知道。 我希望连接到需要我的用户 ID 和密码的校园网络。 如何配置以进行连接?

    此致

    最小值

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

    您好!

    您是指您的校园网络使用强制网络门户(您在其中插入用户 ID 和密码的网页)? 如果是这样、则很难在没有人工交互的情况下连接任何类型的设备、因为强制门户需要此类交互。

    1月

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

    你(们)好、Jan

    我认为这不像强制门户重定向到网页、而是像我们使用手机连接到 WiFi、这种情况下、只需要普通 WiFi 的密码、但需要校园 WiFi 的用户 ID 和密码。 是否可以连接到它?

    此致

    最小值

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

    您好!

    好的、这可能是企业安全类型。 CC3120器件支持这种类型的安全性。 但是、要连接到此类网络、需要在 CC3120端进行更多设置。 请联系您的 IT 部门、他们可以提供其他信息。

    文档第4.6.2章介绍了企业安全性

    1月

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

    你(们)好  

    我计划实施以在 Firebase 实时数据库中写入数据。 我使用 此补丁来修改值、如下所示。 但响应有错误。 我是否可以知道如何纠正此错误?

    请求

    PATCH /.json HTTP/1.1
    Host: minmin-68c89.firebaseio.com
    Accept: */*
    {"dir":"1"}
    
    Response HTTP/1.1 400 Bad Request Server: nginx Date: Sat, 26 Oct 2019 12:04:48 GMT Content-Type: application/json; charset=utf-8 Content-Length: 36 Connection: keep-alive Access-Control-Allow-Origin: * Cache-Control: no-cache Strict-Transport-Security: max-age=31556926; includeSubDomains; preload {    "error" : "No data supplied."                                 }                                  ATCH /.json HTTP/1.1 Host: minmin-68c89.firebaseio.com Accept: */* {"dir":"1"}
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    对于调试 HTTP 请求、最简单的方法可能是在将 HTTP 请求发送到服务器之前检查其内容、并将其与您的 firebase 服务器文档所需的输入进行比较。

    虽然我不清楚您的请求为何失败、但我怀疑一旦您看到请求本身、原因可能就会很明显。 我建议您在 httpclient.c 内 sprint()的 slNetSock_send()处放置一个断点 您可以从此处确切地看到发送到服务器的内容。

    此致、

    Michael

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

    你(们)好,Michael

    slNetSock_send()是否与 sl_Send()相同? 我使用 sl_Send 来发送数据。 上面显示的请求是在发送到服务器时打印的请求消息。 以下代码显示 sl_Send()以检查要发送的数据是否正确。 如果问题未解决,是否可以再次出现需要手动安装的证书问题?

    RetVal = sl_Send (App_CB.weatherSockID、App_CB.weatherSendBuff、
    strlen ((const char *) App_CB.weatherSendBuff)、0);

    UART_PRINT ("%s"\n\r\n、App_CB.SendweatBuff);

    此致

    最小值

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

    您好、Min、

    是的,slNetSock_send()的实现将调用 sl_Send()。 SlNetSock 层是所有 BSD 套接字通信的抽象层、而 SL_* API 则特定于 CC3xxx Wi-Fi 器件。

    鉴于您在云端收到的错误消息、证书不太可能导致错误。 这是因为、如果您的证书不好、那么您将无法执行 TLS 连接以发送任何数据、而在服务器端、您可能无法获得除简单的"连接被拒绝"消息之外的任何输出。

    您是否检查了传递到 SlNetSock_SEND ()/sl_Send ()的缓冲区并将其与 AWS 的期望进行了比较? 您是否还尝试使用 cURL 或其他 simliar HTTP 请求应用在 PC 上运行相同的 HTTP 命令、以确保您构建的请求与服务器预期的输入相匹配?

    此致、

    Michael