我正在阅读代码签名证书过期时会发生什么 - 堆栈溢出并想知道一个更可靠的答案。提供的答案更多是关于设置您自己的 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"
然后,要查看签名者证书和时间戳记证书,您可以执行以下操作:
Get-AuthenticodeSignature MyFile.ps1 | fl *
它为您的证书和时间戳记的证书提供主题(CN、OU 等)、颁发者、之前/之后日期和指纹。您还会收到一条指示签名状态的消息。