我正在读书 代码签名证书到期时会发生什么 - Stack Overflow 并且想知道更稳固的答案。提供的答案更多是关于设置自己的CA.即使使用您自己的CA,您仍然需要处理过期的代码证书。
如果您在不使用时间戳服务的情况下签署了代码,则在证书过期后,您的代码将不再受信任,并且根据安全设置,可能不允许其运行。您需要每1年或2年使用新证书或续订证书重新签署所有代码。
可信(数字)时间戳允许数字签名即使在证书本身过期后也有效。只有在进行了更改后,才需要使用新证书重新签名代码。
这听起来都是正确的吗?如果是这样,我需要建议使用什么时间戳服务,最好是实际使用过的服务。我还想知道是否有任何内部解决方案,类似于您自己的CA.
现在这适用于PowerShell脚本,但我最终会遇到与其他代码相同的问题。
更新:如何使用时间戳签署PS脚本的示例(您可以为此创建脚本):
Set-AuthenticodeSignature -filepath "D:\Projects\A Sample\MyFile.ps1"
-cert gci cert:\CurrentUser\My -codesigning
| where -Filter {$_.FriendlyName -eq "Thawte Code Signing"}
-IncludeChain All
-TimeStampServer "http://timestamp.verisign.com/scripts/timstamp.dll"
然后,要查看签名者证书和TimeStamper证书,您可以这样做:
Get-AuthenticodeSignature MyFile.ps1 | fl *
它为您提供证书和时间戳证书的主题(CN,OU等),颁发者,前/后日期和指纹。您还会收到一条消息,指示签名的状态。