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.

[参考译文] CC3235SF:CC3235SF

Guru**** 2484615 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1273401/cc3235sf-cc3235sf

器件型号:CC3235SF

您好!

Microsoft Azure 已从"巴尔的摩"证书迁移到"DigiCert 全球根 G2"证书。 这会在 DPS 发送 IoT 集线器 URL 字符串后导致 Azure IoT 集线器出现连接问题。 该设备无法与云端之间收发消息。  

我们认为一个可行的解决方案是将 DigiCert 全局根 G2证书添加到一个数组中、并将该数组写入用于 C SDK 的 Azure IoT 插件中的/cert/ms.der 文件中。 请参阅以下代码。  

#define AZURE_IOT_ROOT_CA_FILENAME                          "/cert/ms.der"

const char AzureTemporaryCerts[] = 
/* DigiCert Global Root G2 */
"-----BEGIN CERTIFICATE-----\r\n"
"MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh\r\n"
"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\r\n"
"d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\r\n"
"MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT\r\n"
"MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\r\n"
"b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG\r\n"
"9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI\r\n"
"2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx\r\n"
"1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ\r\n"
"q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz\r\n"
"tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ\r\n"
"vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP\r\n"
"BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV\r\n"
"5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY\r\n"
"1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4\r\n"
"NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG\r\n"
"Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91\r\n"
"8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe\r\n"
"pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl\r\n"
"MrY=\r\n"
"-----END CERTIFICATE-----\r\n"
/* DigiCert Baltimore Root */
"-----BEGIN CERTIFICATE-----\r\n"
"MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ\r\n"
"RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD\r\n"
"VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX\r\n"
"DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y\r\n"
"ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy\r\n"
"VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr\r\n"
"mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr\r\n"
"IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK\r\n"
"mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu\r\n"
"XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy\r\n"
"dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye\r\n"
"jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1\r\n"
"BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3\r\n"
"DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92\r\n"
"9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx\r\n"
"jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0\r\n"
"Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz\r\n"
"ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS\r\n"
"R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp\r\n"
"-----END CERTIFICATE-----\r\n"
;

 flashCerts((uint8_t *)AZURE_IOT_ROOT_CA_FILENAME, (uint8_t *)AzureTemporaryCerts, strlen(AzureTemporaryCerts),0,0); 

我的问题如下:

1.为处理 Azure 向"DigiCert Global root G2"的迁移,上述更改是否正确?  

2.我们是否需要进行任何其他更改,以确保使用 DigiCert global root G2的 Azure IoT HUB 不会出现任何配置和连接问题?

3.我们观察到、如果从上述阵列(AzureTemporaryCerts)中删除巴尔的摩证书、配置将失败。

收到 SL_OTHER_SIDE_CLOSE_SSL_DATA_NOT_ENCRYPTED 错误(错误代码编号2)。 这意味着什么? 如何解决此问题?  

为什么 Azure IoT SDK 的配置需要"巴尔的摩"证书?

4.在用于 C SDK 的 Azure IoT 插件的哪些文件中、设备通过 TLS/SSL 连接到 Azure IoT 集线器时会进行根 CA 验证? 我们无法找到" ms.der"文件被读取并用于进行验证的情况。  

谢谢。此致、

姆鲁杜拉  

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

    您好!

    它已分配给团队中的主题专家。

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

    很好的问题。

    对于 cc3235、您的解决方案似乎有效。 该文件可以保存多个根 CA。 但我认为它应该"/cert/ms.pem "(你将引用这个良好的名称和内容是 PEM 而不是 DER )。   

    我不知道为什么删除过时的"巴尔的摩"导致错误,正如你所提到的。 这可能是 Azure 团队面临的问题。 理论上、如果他们已经切换了证书-您可以删除旧证书。

    在 source/third_party/azure-IoT-PAL-simplelink/PAL/中查找 SL_SSL_CA_CERT (定义为"/cert/ms.pem -其中它用于 HTTP 连接和 TLS 套接字(最终验证将由 NWP 完成-这些仅用于套接字配置)。  

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

    嘿 Kobi、

    非常感谢您的快速响应! 这对我们有很大帮助!  

    您能否同时分享我如何添加"Microsoft RSA Root Certificate Authority 2017"? 我是否应该将其添加到 ms.pem 文件中作为叶节点? Azure 建议添加此证书作为回退选项、以防 DigiCert 意外退出或失效? 此证书似乎与 DigiCert 不同。  

    再次感谢您的快速响应。   

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

    如果您使用的是 cc323x、则可以将其添加到"ms.pem"中。

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

    非常感谢!

    这很有帮助。 我将实施它。  

    最终查询-

    调用  Prov_Device_ API, Register_Device  它被成功调用,但配置过程给出了 PROV_DEVICE_RESULT_TRANSMIT  错误。  

    错误代码 PROV_DEVICE_RESULT_TRANSMIT 和 PROV_DEVICE_RESULT_DEV_AUTH_ERROR 意味着什么?  

     PROV_DEVICE_RESULT_DEV_AUTH_ERROR 是否意味着 TLS 握手失败?

     PROV_DEVICE_RESULT_TRANSMIT 错误是否意味着 TLS 握手成功、但配置中的后续步骤失败?  

    最后、当我们收到"配置状态:Prov_DEVICE_REG_STATUS_CONNECTED "时、这意味着什么? 与 TLS 握手成功或失败有什么关系吗?  

    谢谢! 如果这些问题不是您的领域、我深表歉意。  

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

    基本上、我不熟悉您所询问的定义-它们来自 Azure (Microsoft 代码)。

     PROV_DEVICE_REG_STATUS_CONNECTED 似乎仅与本地接入点的连接相关、而与 TLS 连接无关。

    TLS 连接的 simplelink 返回代码可以在第356行找到、 该行是 azure 和 cc32xx 之间的 src 适配层、即 source/third_party/azure-ito-pal-simplelink/PAL/tlsio_sl.c。 如果您可以打印此页、我们可能会提供更多帮助信息。

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

    谢谢 Kobi!