0

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

Microsoft 提供了很多文档,但并没有真正向我解释——尤其是当您在其中添加 ClickOnce 部署时。

有一个密钥和一个证书:我可以使用sn.exeand自己创建makecert.exe这些工具,还是这些工具仅用于开发并且我需要从CA(例如Verisign )获取它们?

密钥和证书有什么区别?

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

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

鉴于我的所有应用程序都是公司内部的,并且我们已决定不使用 ClickOnce 而是通过 MSI 文件进行部署 - 我是否需要担心这一点?

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

4

1 回答 1

2

部署到 GAC 所需的只是强名称签名。.NET 运行时使用强名称来标识程序集并包括名称、版本和数字签名。.snk强名称工具( )可以生成强名称密钥文件(sn.exe)。拥有密钥文件后,您可以使用该工具手动签署程序集或更改项目设置以在构建时自动签署程序集。

验证这些数字签名不涉及证书颁发机构 (CA)。没有什么可以阻止程序集被不同的密钥辞职,它只是不是你的密钥。我还要注意它们是不可撤销的,所以你应该保证它们的安全。

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

更多关于强名称签名。

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

于 2013-01-02T08:01:41.237 回答