代码签名证书过期后会发生什么?

gun*_*erz 2 asp.net-mvc wcf

我们有 2 个 Web 应用程序和一个使用强命名 DLL 的 WCF 服务。用于签署此 DLL 的证书即将过期,并且我们尚未获得替换证书。

任何人都可以告诉我们,如果我们在证书过期后继续使用这个强命名的 DLL,应用程序是否会出现任何问题。

谢谢

Igo*_*tin 5

在讨论对 DLL 进行签名时,有必要区分两种情况:

  • 赋予程序集一个响亮的名字
  • 创建authenticode签名

用于提供强名称的证书可能会过期,并且它不会影响强命名过程本身以及随后生成的程序集。因为只有公钥/私钥对用于给出强名称。通常用于保存强命名密钥的 .SNK 文件只是公钥/私钥的容器。

Authenticode 签名需要完整的证书文件,并且您不能使用过期的证书来创建authenticode 签名。但是有两种方法可以创建authenticode签名:带验证时间戳或不带验证时间戳。如果 DLL 的签名没有经过验证时间戳,则当用于签名 DLL 的证书过期时,其签名将变为“无效”。如果 DLL 使用经过验证的时间戳进行签名,则 DLL 将永远有效。

因此,就您而言,如果您只谈论强名称,那么一切都会起作用。

如果您使用 Authenticode 签名并且不使用经过验证的时间戳,那么您的 DLL 在证书过期后将没有有效签名,但它们仍然可以正常工作。虽然,例如,当要分发的 DLL 具有有效/无效的 Authenticode 签名时,ClickOnce 的行为略有不同。