试图一石二鸟。我不熟悉证书,它们是如何工作的等等。如果我的企业网站有SSL证书,我可以用它来签署我的程序集并让它们受到信任吗?我想不是,但认为值得问。
答案 0 :(得分:7)
您可以使用适当的代码签名证书对程序集(以及任何Windows dll或exe)进行签名,其中包含私钥。
除非非常不寻常,否则网站(身份验证)证书将没有正确的“使用”属性以允许其用于代码签名。
有关此内容的更多信息(以及签名所需的工具): Everything you need to know about Authenticode Code Signing 。
答案 1 :(得分:1)
除了理查德所说的,您还需要区分强命名(使用“原始”私钥签名程序集)和Authenticode签名。强命名特定于.NET程序集,而Authenticode用于对任何PE文件(以及其他一些文件类型)进行签名。
此外,如果使用Authenticode对程序集进行签名,则可以在加载程序集时准备好延迟。这是因为.NET Framework验证签名并可选地检索CRL并在每次加载程序集时执行OCSP检查。因此,除非必须对程序集进行签名,否则出于性能原因,您可能希望跳过此步骤。
在我们的Secureblackbox产品中,我们已对所有组件进行了签名,但随后一些客户报告说组件根本无法加载,结果证明这与签名验证有关。所以我们删除了authenticode签名,只保留了.NET强大的功能。