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:Github 的证书出现问题

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

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1249245/cc3220sf-problem-with-certificate-to-github

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

您好!

约 三年前、我们开始针对 CC3220SF 进行开发。 我们已经在生产环境中运行 CC3200、并且由于我们延长了处理时间、因此我们停止了针对 CC3220SF 的开发。 最近、我们再次启动、因为我们缺少 CC3220SF 的安全功能。 在我们停止 CC3200SF 的开发时、我们或多或少启动并运行了包含 Github 的 OTA 的核心功能。

现在、当我们运行与停止时完全相同的软件时、会出现证书错误:

så 我假定证书已从"DigiCert 高保证 EV 根 CA"更改为"DigiCert 全局根 CA"、因此我更改了闪存文件和代码中的证书。 但我仍然收到相同的证书错误。 一个帮助会被感激,因为我已经被抽了几天试图搞清楚这个。

原 OTAUSER。 h
====================

/* Github 服务器信息*/
#define OTA_SERVER_NAME                "api.github.com
#define OTA_SERVER_IP_ADDRESS          0x00000000
#define OTA_SERVER_SECURED            1

/* Github 供应商信息*/
#define OTA_VENTER_ROOT_DIR            "/xxxxx/xxxxx/OTA;在发布到 TI e2e 之前已删除
#define OTA_VENTER_TOKEN             "SimpleLink"
#ifndef ota_vender_token
#error "请在上面的 ota_vender_token 中定义您的个人云帐户令牌"
#endif

#define OTA_SERVER_ROOT_CA_CERT        "DigiCertHighAssuranceEVRootCA.crt"
#define OTA_SERVER_AUTH_IGNORE_DATA_TIME_ERROR
#define OTA_SERVER_AUTH_DISABLE_CERT_STORE



带原始证书的日志
============================

OtaInit:统计信息= 0、0、0
OtaInit:调用 Ota_init
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
Archive_Init:OTA 存档版本= OTA_ARCHIVE_2.0.0.4
OtaConfig:调用 OTA_SET EXTLIB_OTA_SET_OPT_SERVER_INFO、ServerName=api.github.com
OtaConfig:调用 OTA_SET EXTLIB_OTA_SET_OPT_VENDER_ID、VendorDir=CC3220SF
OTA_RUN:调用 Ccartn Client_Connect OTA server= api.github.com
Client_Connect:Cquarti Client_Connect api.github.com
Http Client_Connect:IP_ADDR=140.82.121.5
SL_SOCKET_ASYNC_EVENT:错误-根 CA 错误
请安装以下根证书:
 DigiCert 全局根 CA
Http Client_Connect:错误套接字连接、状态=-688
Cdnc2000:Client_Connect 错误 Http Client_Connect,状态=-20304
OTA_run:错误 Ccclon沟 Client_Connect、状态=-20304

_OtaCheckConsecectiveErrors:ConsecectiveOtaErrs=1/5、仅返回 WARNNING
OtaRunStep:警告 Ota_run、状态= 20006、在下一个 OTA RETR 中继续



新 OTAUSER。 h
====================

/* Github 服务器信息*/
#define OTA_SERVER_NAME                "api.github.com
#define OTA_SERVER_IP_ADDRESS          0x00000000
#define OTA_SERVER_SECURED            1

/* Github 供应商信息*/
#define OTA_VENTER_ROOT_DIR            "/xxxxx/xxxxx/OTA;在发布到 TI e2e 之前已删除
#define OTA_VENTER_TOKEN             "SimpleLink"
#ifndef ota_vender_token
#error "请在上面的 ota_vender_token 中定义您的个人云帐户令牌"
#endif

#define OTA_SERVER_ROOT_CA_CERT        "digicertglobalrootca.crt"
//#define OTA_SERVER_ROOT_CA_CERT "DigiCertHighAssuranceEVRootCA.crt"         
#define OTA_SERVER_AUTH_IGNORE_DATA_TIME_ERROR
#define OTA_SERVER_AUTH_DISABLE_CERT_STORE




使用新证书的日志
============================

OtaInit:统计信息= 0、0、0
OtaInit:调用 Ota_init
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
Archive_Init:OTA 存档版本= OTA_ARCHIVE_2.0.0.4
OtaConfig:调用 OTA_SET EXTLIB_OTA_SET_OPT_SERVER_INFO、ServerName=api.github.com
OtaConfig:调用 OTA_SET EXTLIB_OTA_SET_OPT_VENDER_ID、VendorDir=CC3220SF
OTA_RUN:调用 Ccartn Client_Connect OTA server= api.github.com
Client_Connect:Cquarti Client_Connect api.github.com
Http Client_Connect:IP_ADDR=140.82.121.5
SL_SOCKET_ASYNC_EVENT:错误-根 CA 错误
请安装以下根证书:
 DigiCert 全局根 CA
Http Client_Connect:错误套接字连接、状态=-688
Cdnc2000:Client_Connect 错误 Http Client_Connect,状态=-20304
OTA_run:错误 Ccclon沟 Client_Connect、状态=-20304

_OtaCheckConsecectiveErrors:ConsecectiveOtaErrs=1/5、仅返回 WARNNING
OtaRunStep:警告 Ota_run、状态= 20006、下一次 OTA 重试继续

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

    请检查文件系统中证书文件的内容。  

    根据错误日志、服务器链由 "DigiCert Global Root CA"签名、但 您没有使用其他证书进行验证。

    我明白,通过编辑 otauser.h 和更改 CA 文件,你正尝试这样做,但文件的内容似乎是不同的。

    (使用正确的证书时、我从未遇到过错误-688。)

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

    尊敬的 Kobi:

    我从 Uniflash 下载了证书、但内容正确、我可以看到。 请参阅以下内容:

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

    您是否在 otauser.h 更新后重新编译了 OTA 库?

    确保构建库、并验证新创建的 lib 文件是否与应用程序链接。

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

    我切换到了新的 SDK、它可以正常运行。 对我来说、问题似乎是它需要支持新 SDK 中引入的两个证书。 BTW 我认为 TI 在发布新的 SDK 时应检查文档是否需要更新。 即、CC3220SF 的 OTA 文档未反映 Simplelink Academy 中的说明。 在 Simplelink Academy 中、最新的 SDK 是6.10、而最新发布的 SDK 是7.10。

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

    连接并不需要2个证书、但新的 SDK 允许(实际上是6.10版)设置2个根 CA、以便 OTA_IF 模块 可以尝试两者(尝试与第一个证书连接、如果失败、则将与  第二个证书连接)。 它专门用于在服务器可能切换到新证书时支持过渡期(因此暂时需要旧和新的根 CA)。  

    我们知道 SL Academy 并未更新为使用最新的 SDK。 我目前无法承诺更新日期。  

    目前(在 SL Academy 更新之前)  MQTTClient 示例的自述文件 是最佳的信息资源。