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.

[参考译文] CC3100MOD:使用适用于 sha1WithRSAEncryption 的 service pack 1.0.1.131-2.11.0.1通过客户端证书身份验证建立 HTTPS 连接时遇到问题

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/760548/cc3100mod-facing-issue-to-establish-https-connection-with-client-certificate-authentication-using-service-pack-1-0-1-13-2-11-0-1-for-sha1withrsaencryption

器件型号:CC3100MOD

您好!

我们当前的软件可以通过 githib.com 连接、具有 sha256WithRSAEncryption。

使用的嵌入式软件宏包括 SL_SO_SEC_METHOD_TLSv1_2和 SL_SEC_MASK_TLS_RSA_ITH_AES_256_CBC_SHA。


我们正在尝试使用适用于 sha1WithRSAEncryption 密码套件的 service pack 1.0.1.131-2.11.0.1建立带有客户端证书验证的 HTTPS 连接。

对于安全方法、使用了 SL_SO_SEC_METHOD_SSLv3_TLSv1_2;对于密码套件、使用了 SL_SEC_MASK_SECURE_DEFAULT。

这不奏效。


我们使用来自 TI\netapps\http\client\httpcli.h 文件的 HTTP 客户端。 我们也在之前升级了服务包。


首先、我们的配置是否正确?


其次,我们从-208获取 HTTPCLI_CONNECT () API 中的 connect (skt、sa、slen) API 的错误信息;
我们如何更深入地挖掘?

我们的应用软件是:

struct HTTPCLI_SecureParams sparams;

/*需要支持- sha1WithRSAEncryption */

/*安全参数*/
sparams.method.secureMethod = SL_SO_SEC_METHOD_SSLv3_TLSv1_2;
sparams.mask.secureMask = SL_SEC_MASK_SECURE_DEFAULT;

strncpy (sparams.cafile、app_sl_SSL_CA_CERT、sizeof (app_sl_SSL_CA_CERT));
memset (sparams.privkey、0U、sizeof (sparams.privkey));
strncpy (sparams.privkey、app_sl_SSL_PRI_key、sizeof (app_sl_SSL_PRI_key));
strncpy (sparams.cert、app_sl_ssl_cli_CER、sizeof (app_sl_ssl_cli_CER));
sparams.dhkey[0]= 0;

HTTPCLI_setSecureParams (&sparams);

RetVal = HTTPCLI_CONNECT (httpClient、(struct sockaddr *)&addr、HTTPCL_TYPE_TLS、NULL); 

我们希望更深入地了解 dhkey 参数。

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

    错误-208通常表示 TLS 连接由于 SSL 握手过程中遇到错误而无法建立。
    如果您知道您的服务器需要使用 SL_SEC_MASK_TLS_RSA_ATS_ATE_AES_256_CBC_SHA 配置 TLS 套接字、则可以尝试直接将该参数作为 secureMask 传入。
    如果需要,dhkey 参数用于 Diffie Hellman 密钥。 只需输入密钥的文件名,就像按文件名传入根 CA 证书一样。

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

    谢谢 Michael。

    我们将检查并返回。

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

    您好!

    我们将服务器签名算法更改为 sha256WithRSAEncryption。

    以下哪两种配置适用于上述签名算法?

    sparams.method.secureMethod = SL_SO_SEC_METHOD_TLSv1_2;
    sparams.mask.secureMask = SL_SEC_MASK_TLS_RSA_WITH_AES_128_CBC_SHA256;
    
    或 sparams.method.secureMethod = SL_SO_SEC_METHOD_TLSv1_2; sparams.mask.secureMask = SL_SEC_MASK_TLS_RSA_WITH_AES_256_CBC_SHA;

    现在、连接 API 使用-155失败。

    如果 RootCA 被禁用、则会失败、并显示-453、即" sl_ESECSNOVERIFY "

    我们如何继续?

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

    这里似乎有两个单独的问题。
    第一个是用于连接服务器的签名算法。 这取决于您的服务器是使用 AES 128还是 AES 256。 您提到您的服务器正在使用 sha256 withRSAEncryption、但 AES 长度不清楚。 请根据您在服务器上配置的设置选择适当的密码。

    对于 SL_ESECSNOVERIFY 错误、这通常是由于客户端无法验证服务器证书。 要更正此错误,请确保使用正确的根 CA 证书来验证服务器。

    如果您需要进一步澄清此问题或有其他问题、请随时告知我并在本主题中发帖。

    此致、
    Michael