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.

[参考译文] CC3100:CC3100 TLS 和 HTTPS。 关于证书的问题

Guru**** 2539500 points
Other Parts Discussed in Thread: CC3100, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/901342/cc3100-cc3100-tls-and-https-question-about-certificates

器件型号:CC3100
主题中讨论的其他器件: UNIFLASH

员工、

我的 HTTP 下载在 CC3100上运行良好、现在正在尝试使用 TLS 获取 HTTPS。

但我不理解证书是如何工作的。 我也会说,我对证书的工作方式只有基本的把握,所以我可能会提出一个愚蠢的问题。 示例代码如下所示:

sparams.method.secureMethod = SL_SO_SEC_METHOD_TLSv1_2;
sparams.mask.secureMask = SL_SEC_MASK_TLS_RSA_ITH_AES_256_CBC_SHA;
strncpy (sparams.cafile、SL_SSL_CA_CERT、sizeof (sl_SSL_CA_CERT));
sparams.privkey[0]= 0;
sparams.cert[0]= 0;
sparams.dhkey[0]= 0;
HTTPCLI_setSecureParams (&sparams); 

哪种类型的区别在于 SL_SSL_CA_CERT 到底是什么? 它是否需要指向某个有证书文件的特定 URL? 我在某个地方找到了一个门铃示例、该示例中的#define 只是/somewhere/subdir/cert.der 或 cert.ca 等内容。 它看起来像是一个文件的 Unix 路径、而不是 URL。 我唯一能想到的是连接指向的域在其服务器上有一个证书、但这不是 TLS 的工作方式 AFAIK。 您应该转到一个值得信赖的第三方。

接下来、我将介绍如何将您自己的密钥放入 CC3100中?

那么、整个过程是如何工作的?

1.您是否必须以某种方式放入您自己的公共密钥和私人密钥?

如果是、如何将其导入 CC3100?

3.如何指向 Google 受信任证书站点之类的内容,并使其验证我连接的服务器?

4.在这个地方是否有明确的白痴指南? 也许我比较厚、但我发现文档很难遵循。

非常感谢。

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

    您好、Robert、

    请看以下网址: https://processors.wiki.ti.com/index.php/CC3100_HTTP_Client

    您需要下载所连接的任何 HTTPS 服务器所需的证书。 SL_SSL_CA_CERT 应包含保存在外部文件系统上的证书的路径(例如 -#define SL_SSL_CA_CERT "/cert/tel.crt)

    要在文件系统上保存文件、您需要使用 uniflash 刷写外部串行闪存。  https://processors.wiki.ti.com/index.php/CC3100_%26_CC3200_UniFlash

    BR、

    Vince  

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

    尊敬的 Vince:

    非常感谢您的回答。 :-)

    您所指的代码正是我在原始帖子中引用的代码。

    我想重复我原来的问题、这种交易不应该与第三方服务器进行、而是直接从您连接的服务器进行? 那么、您是否不应该在第一次请求 URL 时获得证书、URL 会发回一个公共密钥、您将检查该公共密钥、然后将其发回您的公共密钥?

    哦、或者您说的是、我需要将我们的公钥和私钥存储在 外部闪存上吗? 我们没有连接到 CC3100的闪存、就像我看到的那样。  它是否可以存储在微控制器中并通过 SPI 端口传递到 CC3100? 或者、您说的是应该发生的情况吗?

    我很确定我在这里缺少一些基本的东西。

    谢谢、

    Rob

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

    尊敬的 Rob:

    我稍后会说。 CC3100应该有一个连接到它的外部串行闪存。 我们的器件必须使其正常工作。 您将在此处存储根 CA 和证书、以便进行连接。

    BR、

    Vince

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

    尊敬的 Vince:

    实际上、我在一两周前解决了这个问题。 事实证明、这些器件中内置了闪存、您需要在其上存储我们拥有的证书。

    该文档非常糟糕、没有说明 UNIX 类型的文件名是如何存储在 C3100的内部闪存中的、而这种闪存必须更早地设置。

    事实证明、TI 库中存在一个错误、即证书的最大路径长度在 HTTP 代码中仅为16字节、当您调用函数来设置已越过的路径时、没有任何指示 最大长度。 难怪我花了一个时间来跟踪它! 我增加了路径长度 、它开始工作。