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.

[参考译文] Lwip-AM263X:MCU-PLUS-SDK HTTPS 服务器示例

Guru**** 2538955 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1284928/mcu-plus-sdk-am263x-lwip-https-server-example

器件型号:MCU-PLUS-SDK AM263X

在以下示例文档中: https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/09_00_00_35/exports/docs/api_guide_am263x/EXAMPLES_CPSW_LWIP_HTTPS.html

它指出"将.pem 和.key 文件转换为字节数组"。 这将生成一个包含证书/密钥字节数组和数组大小的头文件。"

我想澄清一下在这里该怎么办。 我没有看到".key"文件、后面的行仅显示"server-csr.pem"文件的转换。  

具体而言、哪些文件应 替换 server_certificates.h 中的十六进制转储? 该注释提到了"certificate.pem"和"key.pem"、但我看不到这些文件。

谢谢你。  

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

    您好,  

    我们已收到请求、并开始调查我们将在下周早些时候与您联系的问题。

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

    尊敬的 Eitan:

    对于不清楚的文档、我们深表歉意。  我将更新文档以便一目了然。

    如果要生成自己的证书并自行签名、则在执行相同文档链接中提到的步骤时、将生成以下文件。

    您需要将 server-PRK.pem (服务器密钥)和 server-cer.pem (服务器证书)转换为十六进制、并将 server_certificates.h 文件中的相同内容替换。

    如果您遇到任何问题、请告诉我。

    此致、
    Shaunak

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

    感谢您的澄清。  我尝试了这些步骤、现在看到下面的错误。 我使用的 是 OpenSSL 1.1.1W。

    [Cortex_R5_0] ==========================
           CPSW HTTPS TCP     
    ==========================
    EnetAppUtils_reduceCoreMacAllocation: Reduced Mac Address Allocation for CoreId:0 From 4 To 2 
    EnetPhy_bindDriver: PHY 3: OUI:080028 Model:0f Ver:01 <-> 'dp83869' : OK
    
    PHY 3 is alive
    PHY 12 is alive
    Starting lwIP, local interface IP is dhcp-enabled
    [LWIPIF_LWIP] NETIF INIT SUCCESS
    Host MAC address-0 : 34:08:e1:80:81:c7
    
    Enet IF UP Event. Local interface IP:0.0.0.0
    [LWIPIF_LWIP] Enet has been started successfully
    Waiting for network UP ...
    Waiting for network UP ...
    Cpsw_handleLinkUp: Port 1: Link up: 1-Gbps Full-Duplex
    
    MAC Port 1: link up
    Network Link UP Event
    Waiting for network UP ...
    Enet IF UP Event. Local interface IP:192.168.0.7
    Network is UP ...
    Failed to create TLS confighttpd_init: altcp_tls_new failedASSERT: 7.22528s: C:/ti/mcu_plus_sdk_am263x_09_00_00_35/examples/networking/lwip/cpsw_lwip_https/httpd.c:httpd_inits:1387: 0 failed !!!

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

    尊敬的 Eltan Halpern:

     httpd_inits()函数似乎在为 TLS 返回一个 NULL 协议控制块。  可能有多种潜在的因素导致此问题、例如内存不足、无法分配新的 PCB、回调功能未正确配置。  

    您是否能够以 ZIP 文件的形式共享项目? 调试问题会更简单、更迅速。  

    此致、
    Shaunak

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

    我正在使用的工程为 mcu_plus_sdk_am263x_09_00_00_35\examples\networking\lwip\cpsw_lwip_https、仅修改了 server_certificates.h (我的版本附有)。  

    谢谢你。  




     e2e.ti.com/.../server_5F00_certificates.h

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

    Eitan、您好、我将尝试共享文件、并在一周结束前给您提供更新或修复。

    此致、
    Shaunak

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

    尊敬的 Eitan:

    证书格式似乎是由根本原因引起的。 MbedTLS 似乎期望证书采用 DER 格式而不是 PEM。 在将证书从 PEM 格式转换为 DER 格式之前、文档在某些步骤中缺失。 对于未能确定所需文档、我们深表歉意。

    我将更新正式文档、但为了解除阻止、我还将分享以下步骤:

    1.为证书颁发机构(CA)生成未加密的2048位 RSA 私钥

    openssl genrsa -out ca-prk.pem 2048

    2.生成证书签名请求(CSR)

    openssl req -new -sha256 -key ca-prk.pem -out ca-csr.pem -subj "/C={country}/ST={state}/L={locality}/O={organization} CA"

    3.自行签署 CSR 并为 CA 生成证书

    openssl x509 -req -signkey ca-prk.pem -in ca-csr.pem -out ca-cer.pem -days 3650

    4.为服务器(CA)生成未加密的2048位 RSA 私钥

    openssl genrsa -out server-prk.pem 2048

    5.为服务器生成 CSR

    openssl req -new -sha256 -key server-prk.pem -out server-csr.pem -subj "/C={country}/ST={state}/L={locality}/O={organization}/CN={common name, ex. 127.0.0.1}"Code

    6.查看服务器 CSR 并验证内容

    openssl req -in server-csr.pem -noout -text

    7. 签署服务器 CSR

    openssl x509 -req -sha256 -in server-csr.pem -CA ca-cer.pem -CAkey ca-prk.pem -CAcreateserial -out server-cer.pem -days 365

    按照以下步骤将证书从 PEM 转换为 DER  格式。

    对于证书:

    openssl x509 -outform der -in ca-cer.pem -out certificate.der

    对于密钥:

    openssl rsa -outform der -in ca-prk.pem -out keys.der

    现在、使用上面在 server_certificates.h 中创建的十六进制转储文件、它应该可以正常工作。 我尝试在终端生成新证书、结果成功了。

    此致、
    Shaunak

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

    这是可行的! 谢谢!