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:需要 OTA 故障排除帮助

Guru**** 2550320 points
Other Parts Discussed in Thread: UNIFLASH, CC3220SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/970443/cc3220sf-need-help-troubleshooting-ota-failure

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

您好!

我在 OTA 方面遇到新问题、需要帮助了解原因。 我们已经有一段时间了 OTA 工作了、但最近尚未测试过它、并且很可能是我们造成了回归。 我有以下错误:

OTA_INIT:sizeof CdnClient=576、sizeof OtaArchive=4956
ota_init:sizeof OtaLib_t=7736、sizeof ota_memBlock=7800
OTA_INIT:OTA 库版本= OTA_LIB_2.0.0.7
OtaArchive_Init:OTA 存档版本= OTA_archive_2.0.0.4
OtaPingGateway 启动
OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.dropboxapi.com
CdnClient_ConnectServer:HttpClient_Connect api.dropboxapi.com
HttpClient_Connect:IP_ADDR=162.125.1.19
HttpClient_Connect:错误套接字连接,状态=-456
CdnClient_ConnectServer:错误 HttpClient_Connect、状态=-20304
OTA_RUN:错误 CdnClient_ConnectServer、Status=-20304

_OtaCheckConfuriveErrors:ConfuriveOtaErrors=1/5、仅返回警告
OtaRun:警告状态=20006、
OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.dropboxapi.com
CdnClient_ConnectServer:HttpClient_Connect api.dropboxapi.com
HttpClient_Connect:IP_ADDR=162.125.1.19
HttpClient_Connect:错误套接字连接,状态=-456
CdnClient_ConnectServer:错误 HttpClient_Connect、状态=-20304
OTA_RUN:错误 CdnClient_ConnectServer、Status=-20304

_OtaCheckConfuriveErrors:ConfuriveOtaErrors=2/5、仅返回警告
OtaRun:警告状态=20006、
OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.dropboxapi.com
CdnClient_ConnectServer:HttpClient_Connect api.dropboxapi.com
HttpClient_Connect:IP_ADDR=162.125.1.19
HttpClient_Connect:错误套接字连接,状态=-456
CdnClient_ConnectServer:错误 HttpClient_Connect、状态=-20304
OTA_RUN:错误 CdnClient_ConnectServer、Status=-20304

_OtaCheckConfuriveErrors:ConfuriveOtaErrors=3/5、仅返回警告
OtaRun:警告状态=20006、
OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.dropboxapi.com
CdnClient_ConnectServer:HttpClient_Connect api.dropboxapi.com
HttpClient_Connect:IP_ADDR=162.125.1.19
HttpClient_Connect:错误套接字连接,状态=-456
CdnClient_ConnectServer:错误 HttpClient_Connect、状态=-20304
OTA_RUN:错误 CdnClient_ConnectServer、Status=-20304

_OtaCheckConfuriveErrors:ConfuriveOtaErrors=4/5、仅返回警告
OtaRun:警告状态=20006、
OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.dropboxapi.com
CdnClient_ConnectServer:HttpClient_Connect api.dropboxapi.com
HttpClient_Connect:IP_ADDR=162.125.1.19
HttpClient_Connect:错误套接字连接,状态=-456
CdnClient_ConnectServer:错误 HttpClient_Connect、状态=-20304
OTA_RUN:错误 CdnClient_ConnectServer、Status=-20304

_OtaCheckConfuriveErrors:ConfuriveOtaErrors=5/5、MAX_CONSECURE_OTA_ERRORS!!!
OtaRun:致命错误-21003!!!!

CdnClient_ConnectServer、Status=-20304 -> OTA_HTTP_CLIENT_ERROR_CONNECT_SL_CONNECT 似乎表示连接存在问题

但是 、HttpClient_Connect:错误套接字连接、STATUS=-456 -> SL_ERROR_BSD_ESECBADCAFILE 似乎表示证书存在问题。  

您是否对 CA 文件的确切错误有任何了解? OTA 映像与闪存映像基本相同、因此 CA 文件似乎应该匹配、但最近丢失了 Uniflash 配置设置后、创建文件可能会出错。

现在、我们只使用 TI 虚拟证书  

谢谢、

Katie

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

    -456表示证书格式错误(不太可能)或未找到文件(即路径或文件名错误)。

    确保 Dropbox 服务器的根 CA (Digcert High Assurance CA)在闪存中进行编程、并且 otauser.h 指向正确的路径+文件名。

    BR、

    Kobi

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

    好的、这是有道理的、它缺失了。 遗憾的是、我们似乎找不到文件的原始副本、无法添加它。 但是、我在 Uniflash 中有一个单独的项目、该项目包含在文件系统中(但该项目似乎由于其他原因而损坏。) 在我不必每次重新加载的情况下、Uniflash 似乎正在从系统上的某个位置抓取该文件。 您知道 Uniflash 在哪里保存了我们添加的用户文件的本地副本吗?  

    谢谢、

    Katie

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

    好的、我可以通过将鼠标悬停在文件上并执行 Get 操作来获取文件(并将其保存在安全的地方)。  

    但我仍然没有成功。 以下是我的新错误:

    OTA_INIT:sizeof CdnClient=576、sizeof OtaArchive=4956
    ota_init:sizeof OtaLib_t=7736、sizeof ota_memBlock=7800
    OTA_INIT:OTA 库版本= OTA_LIB_2.0.0.7
    OtaArchive_Init:OTA 存档版本= OTA_archive_2.0.0.4
    OtaPingGateway 启动
    退出 AOWifiMgr::ConnectingToOtaServer
    输入 AOWifiMgr:OtaRunning
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.dropboxapi.com
    CdnClient_ConnectServer:HttpClient_Connect api.dropboxapi.com
    HttpClient_Connect:IP_ADDR=162.125.1.19
    HttpClient_Connect:警告套接字连接,status=-468,已忽略...
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    OTA_RUN:CdnClient_ReqOtaDir、VendorDir=OTA_CC3220SF
    CdnDropbox_SendReqDir:UI=/2/files/list_folder
    HttpClient_RecvSkipHdr:HTTP 错误代码 HTTP/1.1 409
    CdnDropbox_ParseRespDir:错误 HttpClient_RecvSkipHdr、STATUS=-20310
    OTA_RUN:错误 CdnClient_ReqOtaDir、状态=-20310

    _OtaCheckConfuriveErrors:ConfuriveOtaErrors=1/5、仅返回警告
    OtaRun:警告状态=20004、
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.dropboxapi.com
    CdnClient_ConnectServer:HttpClient_Connect api.dropboxapi.com
    HttpClient_Connect:IP_ADDR=162.125.1.19
    HttpClient_Connect:警告套接字连接,status=-468,已忽略...
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    OTA_RUN:CdnClient_ReqOtaDir、VendorDir=OTA_CC3220SF
    CdnDropbox_SendReqDir:UI=/2/files/list_folder
    HttpClient_RecvSkipHdr:HTTP 错误代码 HTTP/1.1 409
    CdnDropbox_ParseRespDir:错误 HttpClient_RecvSkipHdr、STATUS=-20310
    OTA_RUN:错误 CdnClient_ReqOtaDir、状态=-20310

    _OtaCheckConfuriveErrors:ConfuriveOtaErrors=2/5、仅返回警告
    OtaRun:警告状态=20004、
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.dropboxapi.com
    CdnClient_ConnectServer:HttpClient_Connect api.dropboxapi.com
    HttpClient_Connect:IP_ADDR=162.125.1.19
    HttpClient_Connect:警告套接字连接,status=-468,已忽略...
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    OTA_RUN:CdnClient_ReqOtaDir、VendorDir=OTA_CC3220SF
    CdnDropbox_SendReqDir:UI=/2/files/list_folder
    HttpClient_RecvSkipHdr:HTTP 错误代码 HTTP/1.1 409
    CdnDropbox_ParseRespDir:错误 HttpClient_RecvSkipHdr、STATUS=-20310
    OTA_RUN:错误 CdnClient_ReqOtaDir、状态=-20310

    _OtaCheckConfuriveErrors:ConfuriveOtaErrors=3/5、仅返回警告
    OtaRun:警告状态=20004、
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.dropboxapi.com
    CdnClient_ConnectServer:HttpClient_Connect api.dropboxapi.com
    HttpClient_Connect:IP_ADDR=162.125.1.19
    HttpClient_Connect:警告套接字连接,status=-468,已忽略...
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    OTA_RUN:CdnClient_ReqOtaDir、VendorDir=OTA_CC3220SF
    CdnDropbox_SendReqDir:UI=/2/files/list_folder
    HttpClient_RecvSkipHdr:HTTP 错误代码 HTTP/1.1 409
    CdnDropbox_ParseRespDir:错误 HttpClient_RecvSkipHdr、STATUS=-20310
    OTA_RUN:错误 CdnClient_ReqOtaDir、状态=-20310

    _OtaCheckConfuriveErrors:ConfuriveOtaErrors=4/5、仅返回警告
    OtaRun:警告状态=20004、
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.dropboxapi.com
    CdnClient_ConnectServer:HttpClient_Connect api.dropboxapi.com
    HttpClient_Connect:IP_ADDR=162.125.1.19
    HttpClient_Connect:警告套接字连接,status=-468,已忽略...
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    OTA_RUN:CdnClient_ReqOtaDir、VendorDir=OTA_CC3220SF
    CdnDropbox_SendReqDir:UI=/2/files/list_folder
    HttpClient_RecvSkipHdr:HTTP 错误代码 HTTP/1.1 409
    CdnDropbox_ParseRespDir:错误 HttpClient_RecvSkipHdr、STATUS=-20310
    OTA_RUN:错误 CdnClient_ReqOtaDir、状态=-20310

    HttpClient_Connect:警告套接字连接、status=-468 -> sl_error_bSD_ESECUNKNOWNROOTCA

    OTA_RUN:错误 CdnClient_ReqOtaDir、Status=-20310 -> OTA_HTTP_CLIENT_ERROR_RESP_STATUS_NOT_OK

    谢谢、

    Katie

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

    468是一条警告,表示根 CA 无法通过证书目录进行验证(我猜您正在使用虚拟游乐场目录,因此 DigiCert 证书无法识别)。 无论如何、这只是一个警告、连接仍处于打开状态。

    问题是您遇到 HTTP 错误409,尝试读取文件夹列表。

    您是否打开了新的 Dropbox 应用? 如果是、请确保您的令牌设置为"无过期"、并且已启用读取权限。

    尝试生成一个新的令牌并在 otauser.h 中使用它(更改 otauser.h 要求您重建库和应用)。

    BR、

    Kobi

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

    正确的是、我们目前仍在使用虚拟游乐场目录。

    我们尝试使用新的 Dropbox 令牌、并得到相同的错误。 我们无法想象 Dropbox 端发生了什么变化。

    除了令牌之外、Dropbox 侧的哪些类型的更改可能会导致这些错误? 我们认为我们没有改变任何东西(除了令牌)、但某些东西必须改变。

    谢谢、

    Katie

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

    Dropbox 增强了他们的安全协议。

    他们使用短期令牌、默认情况下禁用所有访问权限(当您创建新的下拉框应用程序时)-因此、如果您创建了一个新的应用程序来访问内容、则需要确保令牌生成时具有"无过期"和权限 (第二个选项卡)、用于读取内容和元数据。

    BR、

    Kobi

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

    好的、子文件夹已删除。 (没有人要求承担责任。) 现在、我们回到了最初的问题、出现了以下新错误:

    OTA_RUN:调用 CdnClient_ConnectFileServer、URL =[xxx]
    HttpClient_Connect:IP_ADDR=162.125.1.14
    HttpClient_Connect:错误套接字连接,状态=-688
    CdnClient_ConnectFileServer:HttpClient_Connect 错误、Status=-20304
    OTA_RUN:错误 CdnClient_ConnectFileServer、Status=-20304

    _OtaCheckConfuriveErrors:ConfuriveOtaErrors=4/5、仅返回警告
    OtaRun:警告状态=20006、
    OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.dropboxapi.com
    CdnClient_ConnectServer:HttpClient_Connect api.dropboxapi.com
    HttpClient_Connect:IP_ADDR=162.125.1.19
    HttpClient_Connect:警告套接字连接,status=-468,已忽略...
    OTA_RUN:CdnClient_ReqOtaDir、VendorDir=OTA_CC3220SF
    CdnDropbox_SendReqDir:UI=/2/files/list_folder
    回答为784、处理大小为779
    整个 JSON pRespBuf 为:(空)
    OtaDir 文件名=/ota_CC3220SF/20210114142048_CC3220SF_ota.tar、FileSize=368640
    OTA_RUN:CdnClient_ReqOtaDir、NumDirFiles=1
    OTA_RUN:CdnClient_GetNextDirFile
    OTA_RUN:CdnClient_GetNextDirFile:file=/OTA_CC3220SF/20210114142048_CC3220SF_OTA.tar、size=368640
    OtaArchive_Init:OTA 存档版本= OTA_archive_2.0.0.4
    _ReadOtaVersionFile:file ota.dat、status=sl_error_FS_file_no_exists
    OtaArchive_CheckVersion:无法打开版本文件、请将其标记为旧版本
    OtaArchive_CheckVersion:接受新版本= 20210114142048_CC3220SF_ota.tar
    OtaRun:来自 Ota_run 的状态:ota_run_status_check_news_version、接受并继续
    _ReadOtaVersionFile:file ota.dat、status=sl_error_FS_file_no_exists
    OtaRun:CurrentVersion=0000000000、NewVersion=20210114142048
    OTA_RUN:调用 CdnClient_ReqFileUrl、fileName =/OTA_CC3220SF/20210114142048_CC3220SF_ota.tar
    CdnDropbox_SendReqFileUrl:Uri=/2/files/get_Temporary 链接
    HTTP 请求为:
    发布/2/files/get_Temporary _link HTTP/1.1
    主机:api.dropboxapi.com
    授权:不记名 O33Upy6Y3FwAAAAAAAAAAAAAAAAAAXOzDDehc7Bv3A-8BTDE2y87fmigAlTqoRCuPgynxCMx
    内容类型:应用/JSON
    内容长度:68

    {"path":"/ota_CC3220SF/20210114142048_CC3220SF_ota.tar"}


    OTA_RUN:调用 CdnClient_ConnectFileServer、URL =[xxx]
    HttpClient_Connect:IP_ADDR=162.125.1.14
    HttpClient_Connect:错误套接字连接,状态=-688
    CdnClient_ConnectFileServer:HttpClient_Connect 错误、Status=-20304
    OTA_RUN:错误 CdnClient_ConnectFileServer、Status=-20304

    _OtaCheckConfuriveErrors:ConfuriveOtaErrors=5/5、MAX_CONSECURE_OTA_ERRORS!!!
    OtaRun:致命错误-21003!!!!

    我看到-688 SL_ERROR_BSD_ESEC_ASn_NO_Pigner_E 似乎仍然表示存在错误证书、但我们正在努力了解哪一个证书及其错误。  

    谢谢、

    Katie

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

    -688表示您使用的根 CA 不符合服务器的 CA。

    您可以将以下代码添加到套接字事件处理程序中:

    void SimpleLinkSockEventHandler (SlSockEvent_t * pSock)
    {
    
    if (pSock->Event == sl_socket_ASYNC_EVENT)
    {
    交换机(pSock->SocketAppoed.Sock.Data)
    {
    案例 SL_SSL_notification_wrong_root_CA:
    /*套接字错误重启 OTA */
    log_message ("sl_socket_ASYNC_EVENT:错误-错误的根 CA\n");
    log_message ("请安装以下根证书:\n\n");
    log_message ("%s\n\r\n、
    pSock->SocketAppoed.Sock.动作 数据.pExtraInfo);
    中断;
    默认值:
    /*套接字错误重启 OTA */
    log_message ("sl_socket_ASYNC_EVENT 套接字事件%d \n\r\n、
    pSock->Event);
    }
    } 

    它将打印服务器需要的根 CA 证书(用于验证)。

    BR、

    Kobi  

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

    奇怪的是、我们甚至没有进入 SimpleLinkSockEventHandler。  这是否表明出现了错误?  

    我们确实怀疑 Dropbox 端存在问题、因为我们的某些设备运行的旧代码以前正常、但现在这些设备上的升级失败。 我们的令牌没有过期且已启用读取访问。  

    谢谢、

    Katie

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

    您是否仍然收到-688错误代码? 这将与 SimpleLinkSockEventHandler 一起提供。

    如果出现其他错误,则不会调用事件处理程序(根 CA 证书仅在缺少时才会报告)。

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

    您说得对、我们将再次丢失 Dropbox 令牌、我不知道这一点。 (Dropbox 使您可以轻松点击某个内容、查看其执行的操作、从而在没有警告的情况下导致真正的更改)。  

    现在、我们进入 SimpleLinkSockEventHandler、它告诉我们缺少以下内容:

    OTA_RUN:调用 CdnClient_ConnectFileServer、URL = content.dropboxapi.com
    HttpClient_Connect:IP_ADDR=
    SL_SOCKET_ASYNC_EVENT:错误-根 CA 错误
    请安装以下根证书:
    DigiCert 全局根 CA
    HttpClient_Connect:错误套接字连接,状态=-688
    CdnClient_ConnectFileServer:HttpClient_Connect 错误、Status=-20304
    OTA_RUN:错误 CdnClient_ConnectFileServer、Status=-20304

    这是否意味着我们在构建映像时在可信根证书目录中有错误的文件? 我们正在使用:

    • \tools\cc32xx_tools\certificate-m游乐场\certcatalogPlayFound20160911.lst
    • \tools\cc32xx_tools\certificate-spool\certcatalogPlayGround20160911.lst.signed_3220.bin

    这是基于 SWRA510b 图3-3的、但 SDK 中的路径不完全如所列。

    谢谢、

    Katie

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

    否、目录不是问题。

    由于资源限制,我们的目录不包括整个根 CA 证书,而只包括它们的摘要。 您需要在文件系统中存储实际的根 CA (即"DigiCert 全局根 CA")并设置套接字选项(因此在连接期间、将使用该根 CA 来验证服务器证书。 为了验证服务器的证书,根 CA 必须是正确的)。 使用我们的 OTA 库时、您只需在 otauser.h 中设置 OTA_SERVER_ROOT_CA_CERT 定义(库将相应地设置套接字选项) 、然后重建库和应用程序。

    由于您使用的是"游乐场"目录、您将在连接设置期间收到警告(因为虚拟目录不包括有效根 CA 证书摘要)、但它将被忽略(被库所忽略)、并且将建立连接。

    BR、

    Kobi

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

    好的、我们最初有的  

    #define OTA_SERVER_ROOT_CA_CERT      "digicerthighanceevrootca.crt"

    它在过去一年中运行良好、并包含在文件系统中。 当我们将其更改为时  

    #define OTA_SERVER_ROOT_CA_CERT      "DigiCertGlobalRootCA.CRT"

    并将其包含在文件系统中、似乎需要我们的原始证书:  

    _OtaCheckConfuriveErrors:ConfuriveOtaErrors=4/5、仅返回警告
    OtaRun:警告状态=20006、
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    退出 AOWifiMgr:OtaRunning
    输入 AOWifiMgr:OtaRunning
    OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.dropboxapi.com
    CdnClient_ConnectServer:HttpClient_Connect api.dropboxapi.com
    HttpClient_Connect:IP_ADDR=162.125.1.19
    SL_SOCKET_ASYNC_EVENT:错误-根 CA 错误
    请安装以下根证书:
    DigiCert 高保证 EV 根 CA
    HttpClient_Connect:错误套接字连接,状态=-688
    CdnClient_ConnectServer:错误 HttpClient_Connect、状态=-20304
    OTA_RUN:错误 CdnClient_ConnectServer、Status=-20304

    谢谢、

    Katie

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

    您似乎发现了一个新问题。

    在 OTA 过程中、库实际上连接到2台服务器。 它首先连接到 Dropbox CDN 服务器、在该服务器上、它使用令牌访问您的应用文件夹并查找要下载的(TAR)文件。 找到 tar 文件后、库会请求其 URL (在 Dropbox 的文件服务器中)。

    然后,该库打开与文件系统的第二个(HTTPS)连接以加载文件。

    到目前为止、两台服务器(CDN 和文件)始终使用相同的证书(DigiCertGlobalRootCA.CRT)。

    现在文件服务器似乎使用了不同的服务器。    

    我们将在下一个 SDK 中添加一个修复程序、但同时您可以尝试以下修复程序(对于"ota"库):

    1.将2个根 CA 证书存储在文件系统中:"DigiCertGlobalRootCA.crt"和 "digicerthighanceevrootca.crt"

    2.在"otauser.h"中,添加第二个定义如下:

    #define OTA_SERVER_ROOT_CA_CERT        "digicerthighanceevrootca.crt"
    #define OTA_FILE_SERVER_ROOT_CA_CERT  "DigiCertGlobalRootCA.CRT"

    3.在"OtaHttpClient.c"中-更新 HttpClient_Connect()的定义,以便它将证书作为参数获得(目前它始终使用 OTA_SERVER_ROOT_CA_CERT)。 应相应地更新头文件:  

    int16_t HttpClient_Connect (uint8_t *服务器名称、int32_t IpAddr、int32_t 端口、int32_t 安全、char * rootCert、 int32_t 非阻塞)

    (笑声)

    更新(line110):

    status = sl_SetSockOpt (SockId、sl_SOL_Socket、sl_SO_SECURE_FILES_CA_FILE_NAME、rootCert、strlen (rootCert));

    (笑声)

    4.在"CdnClient.c"中:更新 CdnClient_ConnectServer()和 CdnClient_ConnectFilletServer()

    int16_t CdnClient_ConnectServer (CdnClient_t * pCdnClient、Ota_optServerInfo * pOtaServerInfo)

    (笑声)

    更新(第57行):

    pCdnClient->ServerSockId = HttpClient_Connect (pOtaServerInfo->ServerName、pOtaServerInfo->ipaddress、socket_port_default、pOtaServerInfo->SecuredConnection、OTA_SERVER_ROOT_CA_CERT、 socket_blocking);

    (笑声)

    int16_t CdnClient_ConnectFileServer (CdnClient_t * pCdnClient、uint8_t * pFileUrl、Int32_t SecuredConnection)

    (笑声)

    更新了(第150行)

    pCdnClient->FileSockId = HttpClient_Connect (ServerNameBuf、0、pCdnClient->portnum、SecuredConnection、OTA_FILE_SERVER_ROOT_CA_CERT、  socket_blocking);

    (笑声)

    BR、

    Kobi

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

    非常有用!  

    感谢您与我们一起解决许多问题、并快速做出响应。  

    -Katie