程序集签名、证书和密钥文件—需要这些吗?

本文关键字:文件 证书 密钥 程序集 | 更新日期: 2023-09-27 17:50:35

我想开始签名我的程序集,以便它们可以部署到GAC并在多个应用程序之间共享/重用等。

微软提供了大量的文档,但它并没有真正向我解释-特别是当你在那里添加ClickOnce部署时。

有一个密钥和一个证书:我可以使用sn.exemakecert.exe自己创建这些,或者这些工具只是用于开发,我需要从CA(例如Verisign)获得它们?

密钥和证书的区别是什么?

我可以在我的所有应用程序中重用密钥和证书吗(这是我想要做的)?

我给密钥/证书的名称(文件扩展名)是什么?ClickOnce自动创建一个.pfx文件-是什么创建与sn.exe或应该是.snk?

考虑到我所有的应用程序都是公司内部的,我们已经决定不使用ClickOnce,而是通过MSI文件部署-我需要担心这个吗?

我不需要将文件部署到GAC -这只是我一直在阅读的东西。

程序集签名、证书和密钥文件—需要这些吗?

您需要部署到GAC的只是一个强名称签名。. net运行时使用强名称来标识程序集,并包含名称、版本和数字签名。强名称密钥文件(.snk)可通过强名称工具(sn.exe)生成。获得密钥文件后,可以使用该工具手动对程序集进行签名,或更改项目设置以在生成时自动对程序集进行签名。

没有证书颁发机构(CA)参与验证这些数字签名。没有什么可以阻止程序集使用不同的密钥辞职,它只是不会是您的密钥。我还要注意的是,它们是不可撤销的,所以你应该妥善保管。

您当然可以对发布的所有程序集使用相同的键。

关于强名称签名的更多信息。

数字签名(例如Authenticode)是一种不同的机制,可以识别程序集并具有一些附加功能。它们可用于验证程序集未被篡改,证书可由CA撤销。Makecert.exe是用于创建用于测试的内部证书的开发人员工具。