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.

[参考译文] RTOS/TM4C129CNCPDT:EK-tm4c129exl Crypto Connected launchpad (TI-RTOS)上的 HTTPS POST 错误

Guru**** 2539500 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/581385/rtos-tm4c129cncpdt-https-post-error-on-ek-tm4c129exl-crypto-connected-launchpad-ti-rtos

器件型号:TM4C129CNCPDT

工具/软件:TI-RTOS

我尝试通过修改 使用 WolfSSL 库的以太网 HTTPS GET 示例代码、将数据发布到 HTTPS 服务器。

但 API HTTPCLI_sendRequest() 始终返回错误-103 ,这会导致-308的套接字错误(套接字上的错误状态)以运行  

我正在为服务器使用正确的根 CA,并且 API HTTPCLI_CONNECT() 始终成功。

我尝试 使用上述同一服务器的非 HTTPS 版本进行连接、但工作正常。

我还在其他服务器上尝试过相同的开机自检代码、但也可以正常工作

我的问题是:

-我可以获得有关错误-308 (套接字上的错误状态)的更多信息,因为这是我在 wolfSSL 手册上找到的唯一字符串。

- 如果 API HTTPCLI_CONNECT()成功,这是否意味着我的主板和服务器之间的 SSL 握手成功?

-如何启用和捕获日志(可能是 Wireshark 日志)和 WolfSSL 日志以确定确切的问题。

谢谢、
Akshat

  

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

    您好、Akshat、

    以下内容可能会有所帮助、并能解答您的问题:

    • 我还在其他服务器上尝试过相同的开机自检代码、但也可以正常工作

    您能否比较两台服务器的根 CA 之间的密钥大小和其他信息。 我猜根 CA 可能具有某些密码或密钥大小、您所链接的 wolfSSL 构建可能不支持这些密码或密钥大小。 您可能必须使用所需的定义重建 wolfSSL 以启用密码/密钥大小(请检查 wolfSSL 手册中的定义)。

    • 由于这是我在 wolfSSL 手册中找到的唯一字符串、所以我可以获得更多有关错误-308 (套接字上的错误状态)的信息。

    由于此问题与 wolfSSL 直接相关、我们建议您在 wolfSSL 论坛(https://www.wolfssl.com/forums/)上发帖。

    • 如果 API HTTPCL_CONNECT()成功,这是否意味着主板和服务器之间的 SSL 握手成功?

    HTTPCLI_CONNECT()只是创建一个到终端服务器的连接。 实际的 SSL 握手是在第一次调用 HTTPCLI_sendRequest()时启动的。

    • 如何启用和捕获日志(可能是 Wireshark 日志)和 WolfSSL 日志以确定确切的问题。

    要启用 wolfSSL 调试日志,您必须使用-DDEBUG_WOLFSSL 标志重建 wolfSSL 库,并在代码调用 wolfSSL_Debugging on ()中启用 stderr 日志记录(https://www.wolfssl.com/wolfSSL/Docs-wolfssl-manual-8-debugging.html)。

    关于 Wireshark 设置、来自设备的网络流量应重定向到运行 Wireshark 的 PC。 可以使用网络交换机完成重定向,并将其设置为将通信从连接到设备的端口镜像到连接到 PC 的端口。 请注意、只有部分初始握手采用纯文本格式、其余数据将被加密、无法在 Wireshark 上解密。

    谢谢、
    Gerardo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Gerardo、
    感谢您的回答、因为我能够显示 WolfSSL 日志、并发现问题似乎是:


    在 SSL 握手期间、在我的 TI 板发送 client_hello 后、SSL 服务器立即发送连接关闭(可能是 TCP 复位)。


    也会将这些问题移至 WolfSSL 论坛、但您是否对上述情况的可能原因有任何看法?

    另一个输入是,我还尝试使用 openssl 复制行为,但看不到错误,SSL 握手始终成功。 在 openssl 和有问题的服务器之间协商的密码套件是 AES256-SHA (TLS_RSA_ATE_ATE_AES_256_CBC_SHA)

    请提供建议。

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

    您能否共享 Wireshark 日志?

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

    您好 Gerardo、

    我现在没有 Wireshark 日志、而是 WolfSSL 调试日志。

    附上这些意见以征求您的意见。

    感谢您的支持。

    Akshat  

    e2e.ti.com/.../8081.WolfSSL_5F00_logs_5F00_1.txt

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

    我能够解决这个问题。
    调试的时间很长。 我公司的服务器正在使用密码套件 TLS_RSA_ITH_AES_256_CBC_SHA256、不幸的是、在最新版本的 WolfSSL 中禁用了该套件。
    该密码未在 client_hello 消息中通告、因此服务器立即关闭了连接。
    我使用交换机 WOLFSSL_STATIC_RSA 启用密码、一切都很有魅力。

    感谢所有帮助。
    请细心一些
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Akshat、

    很棒! 很高兴听到您能够解决这个问题。

    谢谢、
    Gerardo