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.

[参考译文] CC3200:[CC3200] sl_Connect 失败并出现错误-111、sl_SetSockOpt 返回-92 (TLS 域验证失败)

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1516769/cc3200-cc3200-sl_connect-fails-with-error--111-and-sl_setsockopt-returns--92-tls-domain-verification-failing

部件号:CC3200
Thread 中讨论的其他器件: CC3100

工具/软件:

我正在使用 CC3200 www.google.com通过 TLS 安全连接到。 该代码一直可靠运行直到 2025年3月 ,但自那时起 2025年4月 、TLS 连接失败。

我使用连接到 google 服务器的 ti 示例代码作为 SSL。 您能帮助我了解具体问题是什么以及如何解决问题吗  

  • sl_SetSockOpt() for domain verification is returning -92
  • sl_Connect()返回错误 -111. 。 (如果跳过域验证

     

  • //代码上下文

    //配置 CA 证书
    lRetVal = sl_SetSockOpt (iSockID、SL_SOL_SOCKET、
    SL_SO_SECURE_FILES_CA_FILE_NAME;
    SL_SSL_CA_CERT_FILE_NAME;
    strlen (SL_SSL_CA_CERT_FILE_NAME);
    if (lRetVal < 0){
    uart_print ("器件无法设置套接字选项\n\r");
    GPIO_IF_LedOn (MCU_RED_LED_GPIO);
    返回 lRetVal;
    }

    //启用域验证
    lRetVal = sl_SetSockOpt (iSockID、SL_SOL_SOCKET、
    SL_SO_SECURE_DOMAIN_NAME_VERIFICATION、
    G_Host、strlen ((const char *) g_Host);
    //-->这将返回-92
    if (lRetVal < 0){
    uart_print ("域名验证集失败\n\r");
    GPIO_IF_LedOn (MCU_RED_LED_GPIO);
    返回 lRetVal;
    }

    //尝试连接
    lRetVal = sl_Connect (iSockID、(SlSockAddr_t *)&Addr、iAddrSize);
    //-->这将返回-111  
    if (lRetVal < 0){
    uart_print ("设备无法连接到 Google 服务器\n\r");
    GPIO_IF_LedOn (MCU_RED_LED_GPIO);
    返回 lRetVal;
    }

观察到的返回代码:

  • -92sl_SetSockOpt在域名验证设置过程中返回。

  • -111:返回者 sl_Connect

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

    您好、

    您是否在设备内使用最新的 ServicePack? 从  sl_SetSockOpt (... SL_SO_SECURE_DOMAIN_NAME_VERIFICATION )返回错误-92可能会导致 ServicePack 出现信号问题。 请注意、调用  sl_SetSockOpt (... SL_SO_SECURE_DOMAIN_NAME_VERIFICATION) 只是设置套接字选项。 在建立 TLS 连接时会进行验证。

    1月

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

    我 正在使用 TI 给出的 SSL 示例代码、我跳过证书验证部分-

    //
    //使用 Google CA 证书配置套接字-以进行服务器验证
    //
    lRetVal = sl_SetSockOpt (iSockID、SL_SOL_SOCKET、\
    SL_SO_SECURE_FILES_CA_FILE_NAME、\
    SL_SSL_CA_CERT_FILE_NAME、\
    strlen (SL_SSL_CA_CERT_FILE_NAME);

    if (lRetVal < 0)

    uart_print ("器件无法设置套接字选项\n\r");
    GPIO_IF_LedOn (MCU_RED_LED_GPIO);
    返回 lRetVal;
    }   

    当 使用端口80连接到我的专用服务器时、我获得返回值-370、而使用443时、我获得 erorr -222

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

    您好、

     您在设备中上传了什么服务包? 您使用什么 SDK 版本?

    从 socket.h:

    #define SL_ESEC_PROTOCOL_VERSION        (-370)/* SSL/TLS 警报*/    

    #define SL_ESEC_DOMAIN_NAME_MISMATCH      (-222) /*对等主题名称不匹配*/

    1月

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

    我要使用的服务包为 CC3100_CC3200_ServicePack_1.0.1.15-2.15.0.1、我要使用的 SDK 为 CC3200SDK_1.5.0

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

    您好、

    好的、您的 SDK 版本和服务包似乎是正确的。 但请注意、CC3200是旧器件、不支持用于定制密码套件。  

    1月