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.

[参考译文] CC3220SF:无法安全连接到 MQTT

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1431821/cc3220sf-unable-to-connect-to-mqtt-with-security

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

工具与软件:

您好!
  我尝试使用 CC3220SF 器件连接到服务器、但不断收到以下错误消息:

SL_ERROR_BSD_ESECBADCAFILE (-456L)/*错误安全级别错误的 CA 文件*/

通过我的 PC 使用 mosquito 连接相同的证书时,我可以连接(如 附在屏幕截图中,左窗口),但不能连接设备(附在屏幕截图,右窗口)。 欢迎提出任何进一步的建议或给予支持。

端口:8883
TLS 版本:1.2
MQTT 版本3.11
CA 证书的密码: ECDHE-ECDSA-AES256-GCM-SHA384

此致、
Shashank

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

    您好!

    错误-456表示您提供的根 CA 证书(SL_ERROR_BSD_ESECBADCAFILE)有问题。

    要么是证书格式错误、要么是证书文件的路径错误。

    您是使用 TI 的目录还是使用根虚拟目录进行设置?

    如何在文件系统中设置它(我猜测是通过 Uniflash)? 文件名是什么?如何设置根 CA? 哪种 API?

    是否还可以共享根 CA?

    Shlomi

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

    您好!
      我已 在 google 驱动器链接中上传了根 CA。 我已经为我们服务器的网站 sarad.de 尝试了根 CA (UserTrust RSA 证书颁发机构)和中间证书颁发机构(Sectigo RSA 域验证安全服务器 CA)、我们正在测试其 MQTT 连接。
    同一个证书(Sectigo RSA 域证书)可与 PC 上的 mosquitto 配合使用、与附加图像的左侧窗口相同、但与设备无关。
    我已通过 Uniflash 刷写了它、根 CA 的文件名为 TLS_Sectigo_CA.crt (如下图所示)、设置在根目录中。


    我们尝试了2种方法来编写证书:
    1.证书中的换行 符是通过在证书正文中的64个字符后面加上"\n"来手动添加的
    2.将证书复制到 Notepad++ 上、并添加了 CR LF 的 EOL 转换、并将其上载到设备上

    您能否同时发送一个格式正确的工作根 CA 证书示例进行上传。 谢谢!


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

    您好!

    我认为这里的主要问题是这个根 CA 不包括在根 CA 目录中、尽管我预计会得到  FS_ERR_ROOT_CA_IS_UNKown 错误。

    只是为了验证、是否可以绕过根 CA 验证?

    可以使用  SL_SO_SECURE_DISABLE_CERTIFICATE_STORE 选项实现。

    另外、你能否回答我以上的问题? --> 如何在文件系统上设置它(我猜是通过 Uniflash )? 文件名是什么?如何设置根 CA? 哪种 API?

    Shlomi

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

    Shlomi、您好!
      根 CA 包含在根 CA 目录中、因为正如我之前提到的、相同的证书在 PC 上使用 mosquito (如我以上回复左侧窗口中的图片所示)
    我也绕过了根 CA 验证。 我们使用的是 Wurth Calypso 电路板、此电路板使用的是 cc3220sf 芯片。
    为了回答您的问题、我们使用 AT 命令通过串行接口工具直接通过 SimpleLink API 上传(此方法与其他文件完美配合、我们可以在写入闪存后读取证书)。 文件名设置简单为"RootCA.crt"、我们还尝试了"RootCA.pem"
    是否存在其他问题的任何线索?

    Shashank

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

    您好!

    如何确定您正在使用的根 CA 位于 Simplelink 器件的目录中?

    是否可以附加您正在使用的根 CA?

    Shlomi

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

    您好!

      我们在内存中检查了是否保存的文件、并且文件名与我们创建的文件名相同。 此外,我们在写了 RootCA 的内容后,能够读取它的内容,并验证它与预期一样。 因此、我们确信 RootCA 是 SimpleLink 设备上的同一版本。

    根 CA 附加在 google 驱动器链接中

    drive.google.com/.../17LXdU81A0fuFMyidB7ZtNzlSu2CdvjWH

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

    这个根 CA 在您的 PC 上工作并不多,这只是说这个根 CA 是您的 PC 目录的一部分.

    Simplelink 器件中的目录已硬编码、包括此特定根 CA。

    下的 SDK 中、您可以看到它们 \tools\cc32xx_tools\certificate-catalog\readme.html、有一个包含所有受支持证书的列表、这个列表中没有。

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

    哦,好的,谢谢澄清! 是否有办法将其添加到列表中?

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

    此列表更新已有一段时间。

    让我在内部检查流程。

    Shlomi

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

    好的、请告诉我。  

    此致、

    Shashank

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

    当然、需要一段时间、因此、感谢您的耐心。

    Shlomi

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

    您好!
      它是否有任何更新? 谢谢!

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

    您好!

    仍然没有获得任何反馈。

    很抱歉耽误你的时间。

    Shlomi

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

    好的、请尽快告诉我。 如果需要、我可以共享日志以加快该过程

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

    当然、如果我发现这需要很长时间、我会尝试创建一个"调试"目录、将这个特定目录添加到该目录中、然后发送给您进行测试。

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

    好的、谢谢

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

    大家好、我们有最新消息。  我们目前正在对 As as RootCA 使用自签名证书。 证书颁发给(例如)" hq.test.com "(cn=hq.test.com)。 但是、MQTT 服务器地址是 URL" test.com "。 MQTT 连接命令返回错误-456 (SL_ERROR_BSD_ESECBADCAFILE)。 我们假定这是因为启用了域验证功能。 但是、设置"disable_domain_verification"标志不能解决问题。 是否有针对此问题的权变措施?

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

    您好!

    是否可以附加创建的根 CA 证书?

    Shlomi

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

    它位于 gdrive 链路中

    drive.google.com/.../17LXdU81A0fuFMyidB7ZtNzlSu2CdvjWH

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

    您好!

    如果创建自己的证书、则无法将其添加到证书存储区、因此它很可能会失败、因为它不在目录中。

    您可以通过使用 SL_SO_SECURE_DISABLE_CERTIFICATE_STORE 选项绕过目录、以确保这是问题所在。

    Shlomi

x 出现错误。请重试或与管理员联系。