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.

[参考译文] CC3220SF:CC3220SF:用于安全引导的 CC3220sf 代码签名证书

Guru**** 2558250 points
Other Parts Discussed in Thread: CC3220SF, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/951531/cc3220sf-cc3220sf-cc3220sf-code-signing-certificates-for-safe-boot

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

您好,

我们正在为  基于物联网的项目之一开发 cc3220sf。

我们需要安全启动 cc3220sf 器件。 我们从 DigiCert 购买了具有 SHA-1签名类型的代码签名证书。

因为我们需要上传链中的所有证书(根证书、中间证书、代码签名证书)。

我已从 DigiCert 网页下载根证书和中间证书

DigiCertAssuredIDRootCA 是根证书

DigiCertSHA2AssuredIDCodeSigningCA 是中级证书

我们已生成证书
我们已使用以下方法进行导出  
Internet Explorer:将代码签名证书导出为 PFX 文件。
 
现在、要使用 Uniflash 工具为 cc3220sf 签名.bin 文件、该过程是什么。
我尝试了以下过程
我使用 OpenSSL 命令
OpenSSL PKCS12 -in myfile.pfx -nocerts -out private-key.pem -nodes
 并获得私钥.pem 和代码签名证书
 
在 Uniflash 工具中、在选择二进制文件后、在下拉框签名文件名: 我浏览了私钥.pem、 认证文件名下、 使用了代码签名证书。
 
但它显示的误差为  
 签名无效。
 
问题可能出在哪?
 
此致
Sanath Rai
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您没有将私钥插入 Uniflash? 您不需要使用开放式 SSL 生成签名。 这可以由 Uniflash 自动完成。

    在此论坛上多次讨论了如何使用 DigiCert CA 证书的正确方法。 请使用搜索选项查找该主题帖。

    1月

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

    您好、Jan、

    这是 Sanath。我们曾在其中一篇希望您记住的文章中对之前的证书进行了破坏。

    我之前的帐户在 e2e 论坛中有一些问题、因此我创建了一个新帐户

    现在、我已经从 DigiCert 购买了认证、还获得了.pfx 文件

    在 uniflash 工具中、需要在签名文件名和证书文件名下浏览哪些内容?

    此致

    Sanath

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

    您好!

    • 第一步、您需要从.pfx 文件中提取私钥和证书。
    • 您需要上载到文件系统根证书、中间证书和代码签名证书中。 证书文件的名称需要与 证书内部的 CN 完全相同。
    • 在您的 MCU 文件中、您选择私钥(=计算机上的文件)名称和证书名称(=文件系统中的文件)
    • 就这些。 Uniflash 将自动生成签名。

    1月

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

    1月、

    感谢你的答复。

    我一直在从.pfx 文件中提取私有文件和证书。

    执行它的任何特定过程。

    如何提取私钥和证书?

    很抱歉、这是个愚蠢的问题

    Sanath

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

    您好!

    例如、第一个谷歌结果

    1月

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

    哦、还可以

    实际上、我使用 openssl 从.pfx 文件中提取私钥。

    我想我在那里的命令中犯了一些错误。

    明天早上、我将首先尝试链接中给出的程序。

    我将在此处进行更新。

    谢谢和

    此致

    Sanath

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

    您好、Jan、

    我可以使用您提供的链接提取私钥和证书。

    我已将下面的证书上传到 Uniflash

    根证书-  DigiCertAssuredIDRootCA

    中间证书-  DigiCertSHA2AssuredIDCodeSigningCA

    正在协设计证书-我从.pfx 文件中提取了该证书

    我执行了以下步骤

    • 您需要上载到文件系统根证书、中间证书和代码签名证书中。 证书文件的名称需要与 证书内部的 CN 完全相同。
    • 在您的 MCU 文件中、您选择私钥(=计算机上的文件)名称和证书名称(=文件系统中的文件)

    我使用 Uniflash 连接到 launchpad 并进行了编程、但在99%的时间后、我会收到以下错误

    此致

    Sanath

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

    您好、Sanath、

    证书名称不正确。 文件名必须完全相同。 这意味着包括间隔器、点、分号等

    1月

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

    1月、

    下面是 Uniflash 的屏幕截图。

    代码签名证书名称也应该相同?

    这是代码签名证书的名称对吗?

    代码签名证书名称是否也应与他们提供的名称完全相同。

    因为在使用证书的 OpenSSL 名称从.pfx 文件中提取时、应提供证书名称  

    openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys -out [drlive.crt]

    根证书-  DigiCertAssuredIDRootCA

    中间证书- DigiCertAssuredIDCodeSigningCA-1

    下面是 Uniflash 工具的屏幕截图


    此致

    Sanath

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

    您好!

    证书名称不正确。 它需要与 CN Inside 证书相同。

    很抱歉,但我看不到如何向前迈进。 我写了两次你需要做的事情,但你仍然不能做。 请等待其他用户的输入。

    1月

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

    您好、Jan、

    还可以。

    我将再次尝试执行该过程并使用确切的名称进行检查。

    如果 Nay 改善、我将在这里更新。

    谢谢你

    此致

    Sanath

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

    1月、

    您能否确认我直接从 DigiCert 网页下载的根证书和中间证书是否正确?

    下面是我下载它的链接

    Sanath

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

    您好!

    您需要检查代码签名证书内部。 您可以在这里找到整个证书链。 根据此链,您需要从 CA 下载根证书和中间证书。

    1月

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

    1月、

    好的...我会检查它。

    在下载根证书和中间证书时、可以选择以 PEM 格式或 DER / CRT 格式下载。

    使用哪种格式?

    此致

    Sanath

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

    您好!

    我使用.der 文件。

    1月

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

    感谢您的帮助 Jan! 请告诉我们是否需要在这里提供帮助。

    Jesu

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

    1月、

    谢谢你。

    我要试一下。

    此致

    Sanath

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

    您好、Jesu、

    由于此代码签名过程对我来说是新的、因此我在执行该过程时有一点困惑。

    到目前为止、我们一直在使用虚拟证书进行开发、现在我们已从 DigiCert 购买了代码签名证书。

    但是、由于 Jan 给出了建议、我几乎遵循了 everything.no、我收到了未知的 CA 错误、该错误可能是证书的名称错误、我需要再次验证

    此致

    Sanath

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

    您好、Sanath、

    您可能会遇到此错误,因为您没有正确命名证书。 我看到您说这对您来说是新的。 您是否阅读过我们的证书处理指南 文档? 有很多很好的信息。 尤其是当您开始使用时。 我相信这将对您大有帮助。 如果您有任何疑问、请告诉我。

    Jesu

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

    您好、Jesu、

    下面是我的根部和中间体的一些屏幕截图

    如您所见、我在 Uniflash 工具中使用了相同的名称

    在许多 TI 博文中、证书的文件扩展名是否与之相关、我可以看到 在 uniflash 工具中没有看到.crt 文件扩展名。

    此致

    Sanath

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

    您好!

    名称必须完全相同、这意味着没有任何后缀(.crt)。

    1月

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

    尊敬的 Jan 和 Jesu:

    我只需解释我在获得证书后完成的完整步骤、以便我们位于同一页面 here.please 如果我在任何地方出错、请纠正我。

    以下是步骤。

    我们获得了 DigiCert 证书的链接。

    我们将其导出为.pfx 文件。我们使用1月提供的 openssl 命令链接从.pfx 文件中提取了代码签名证书和私钥

    我在那里得到了私钥、我再次使用 openssl 命令并将其解密为 RSA 格式。

    我还获得了.crt 扩展格式的代码签名证书。

    3.从我的证书链中了解根证书和中间证书后 ,我转到 DigiCert 网站并下载了 DER / CRT 格式的根证书和中间证书。

    4.我转到 Uniflash 工具、在该工具中、我通过查看包含空格的确切名称添加了我的证书、并且添加了扩展名为.crt 的文件、但在 Uniflash 工具中、我删除了.crt 扩展名、因为名称应该是准确的并添加了它们。

    我添加了我的二进制文件并在其中插入了我的私钥和代码签名证书。

    然后成功连接到我的 launchpad 并烧录了代码、但在99个百分点后、我会得到 FS 错误的根 CA 错误。

    我不明白我在这里做错了什么。

    此致

    Sanath

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

    您好、Sanath、

    以上步骤看起来合理。

    如何设置受信任根证书目录? 您是否使用了"默认受信任根证书目录"或已更新了 SDK 中的目录?

    1月

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

    1月、

    实际上、我从 Uniflash 工具文件夹文件中使用过它。。。

    当我从 SDK 工具目录 文件夹中使用它时,我曾收到错误的签名错误,我将在明天去办公室时确认。。。 从 Uniflash 工具开始使用这些证书后、我使用 SDK 文件夹中的虚拟证书转储代码。

    此致

    Sanath

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

    您好、Sanath、

    如果使用 Digi cert 中的证书、则不能使用证书集合中的目录。 您应该使用 SDK 中的"certificate-certcatalog"。

    tools/cc32xx_tools/certificate-certcatalog/certcatalog20200715.lst ... 目录

    tools/cc32xx_tools/certificate-certcatalog/certcatalog20200715.lst.signed_3220.bin…… 签名

    1月

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

    哦,还可以… 明天早上的第一件事我将尝试。我将在这里更新进度。

    谢谢你

    此致

    Sanath

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

    您好、Jan、

    我使用   了 C:\ti\simplelink_cc32xx_sdk_3_40_00_05\tools\cc32xx_tools\certificate-catalog 中的目录

    certcatalog20190217.lst

    certcatalog20190217.lst.signed_3220.bin

    但仍  会发生错误操作失败:FS_programming 错误:RET:-10287、EX_ERR:2633 - FS_ERR_ROOT_CA_is_unkown。

    但我注意到、如果我使用  C:\ti\simplelink_cc32xx_sdk_3_40_00_05\tools\cc32xx_tools\certificate-fadame 、代码会被烧坏100%、但当我更改为高于  C:\ti\simplelink_cc32xx_sdk_3_40_00_05\certificates\cc32xx 时、代码会被烧坏。  

    此致

    Sanath

     

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

    您好、Sanath、

    当您将证书集合中的目录更改为一并开始工作时、这意味着您的 MCU 映像配置为证书集合、这是不正确的。 您需要在高级模式下配置您的 MCU 文件、并在此处插入您的私钥以创建签名和代码签名证书(DigiCert 证书)。

    1月

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

    1月、

    正如您所说  、我将受信任根证书目录更改为 C:\ti\simplelink_cc32xx_sdk_3_40_00_05\tools\cc32xx_tools\certificate-catalog。

     

    然后、在高级模式下、我添加 了 MCU 二进制文件并将私钥和代码签名证书插入其中、还将根证书和中间证书添加到 uniflash 工具中。

    仍然会发生相同的错误。我认为我的一方出现了一些小错误。我无法解决。

    此致

    Sanath

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

    您好、Sanath、

    我不知道你犯了什么错误。 请提供 MCU 二进制文件设置的屏幕截图。

    1月

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

    您好、Jan、

    下面是设置屏幕截图

    此致

    Sanath

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

    您好、Sanath、

    为什么在下拉框中选择了"签名文件名"而不是"私钥文件名"?

    1月

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

    1月、

    我选择 了下拉框"Private Key File Name"并选择了我的密钥、但当我在 Uniflash 中打开 MCU binay 文件的属性时、它会自动在下拉框中显示签名文件名、如下所示。

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

    您好!

    好的、这个屏幕截图看起来正确。 不幸的是、我不确定您犯错的确切步骤是什么。 因为根据您的描述、所有步骤看起来都已正确完成。 您的根证书似乎有问题、但我不知道确切的原因。

    我个人使用 DigiCert 的代码签名证书、中间证书与您的证书略有不同。 但我认为不应成为你一方出现问题的任何理由。 我有:

    • 根 CA:DigiCert 保证 ID 根 CA
    • 中间证书:DigiCert SHA2保证 ID 代码签名 CA

    BTW...

    我再次阅读您的所有帖子。 许多信息不能组合在一起。 开始时、您讨论中间证书"DigiCert SHA2确保 ID 代码签名 CA"、但从代码签名证书可以明显看出、中间证书是"DigiCert 保证 ID 代码签名 CA-1 "。 很遗憾、我无法确定哪些信息是正确的、哪些信息不正确。 我唯一的建议是再次重复所有步骤(包括从 DigiCert 下载证书)、您可能会发现您的错误。

    2.在代码签名证书中使用什么签名哈希算法。 例如、我有 SHA256。

    1月

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

    1月、

    很抱歉、在开始帖子中有关我的中间证书的信息。当时我认为中间证书是   DigiCert SHA2确保 ID 代码签名 CA"、因为我看到了您的其他旧帖子。

    我的根 CA 是   DigiCert 保证 ID 根 CA

    我的中间证书是  DigiCert 保证 ID 代码签署 CA-1

     

    我的签名算法是 sha1rsa

    我的签名哈希算法是 SHA1

    公钥 RSA (2048位)

     

    此致

    Sanath

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

    您好、Sanath、

    具有哈希 SHA1算法的证书应在 CC3220器件上正常工作、以便进行代码签名。

    不幸的是、除了上述内容之外、我没有其他建议。

    1月

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

    您好、Jan、

    我将重复从.pfx 文件中提取私钥和代码签名证书的完整步骤。

    让我们看看结果会是什么。

    您能不能简单确认一下私钥。我使用的是解密 RSA 格式、如下所示

    ---- 开始 RSA 私钥---

    … 文本

    ---- 结束 RSA 私钥---

    正确的格式是否正确?

    此外、在下面的主题中、报告了相同的问题、但他具有 Uniflash 不支持的带有 sha384算法的 comodo 证书。

    是否可以确认算法 SHA1是否正常??

    此致

    Sanath

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

    您好、Sanath、

    我使用.pem 格式的私钥。 因此、我不希望出现任何问题、因为您也有.pem 格式。

    如果您具有 SHA1 (签名长度128或256B)、则该选项应该正常。 CC3220器件不移植 SHA-384或 SHA-512进行代码签名。

    1月

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

    哦、好的、

    因此、我将再次尝试完成的步骤并查看结果。

    我会随时向您提供最新信息。

    感谢你能抽出时间。

    此致

    Sanath

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

    您好、Jan、

    我将代码签名证书从 PEM 转换为.cer 格式、并将文件添加到 Uniflash 工具中、然后连接并对其进行编程。

    现在、我能够转储我的代码。

    非常感谢您的支持。

    此致

    Sanath