Bra*_*tch 11 powershell code-signing certificate trusted-timestamp
我正在阅读当代码签名证书到期时会发生什么 - 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"
Run Code Online (Sandbox Code Playgroud)
然后,要查看签名者证书和TimeStamper证书,您可以这样做:
Get-AuthenticodeSignature MyFile.ps1 | fl *
Run Code Online (Sandbox Code Playgroud)
它为您提供证书和时间戳证书的主题(CN,OU等),颁发者,前/后日期和指纹.您还会收到一条消息,指示签名的状态.
您最好选择一个受信任的证书提供商(Verisign,Thawte,Comodo等).这允许您在没有用户明确信任您的私有根CA的情况下对您的软件进行签名.我们使用Verisign和Thawte,Comodo甚至GoDaddy都有时间戳,即使证书过期多年后软件也无效.
小智 8
时间戳是一项免费服务 - 它实际上只是一个可靠的提供商,用于验证您是否在给定时间签署了该文件.Verisign的时间戳服务是标准服务.Set-AuthenticodeSignature帮助中的最后一个示例演示了如何使用它.
Lee Holmes [MSFT] Windows PowerShell开发Microsoft Corporation
| 归档时间: |
|
| 查看次数: |
7536 次 |
| 最近记录: |