相关疑难解决方法(0)

威瑞信时间戳服务器是否关闭?

过去两天(2021 年 1 月 1 日和 2 日),我尝试使用 Inno Setup 构建我的设置脚本,但数字签名失败。所以我通过电子邮件联系了威瑞信,等待他们的回复。

inno-setup code-signing verisign

54
推荐指数
2
解决办法
1万
查看次数

http://timestamp.verisign.com/scripts/timstamp.dll不可用

如果以下URL不可用,我可以在设置创作工具中使用哪个其他时间戳URL?我得到的具体错误是:SignTool Error: The specified timestamp server either could not be reached or returned an invalid response.

http://timestamp.verisign.com/scripts/timstamp.dll

installer

30
推荐指数
3
解决办法
4万
查看次数

我们为什么要在进行代码签名时设置时间戳?

如果我通过签名设置时间戳,会发生什么?
如果我没有设置怎么办?

这是必要的吗?为什么推荐?

cryptography code-signing portable-executable trusted-timestamp

18
推荐指数
2
解决办法
1万
查看次数

我怎样才能防止每1年或2年重新签署我的代码?

我正在阅读当代码签名证书到期时会发生什么 - 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等),颁发者,前/后日期和指纹.您还会收到一条消息,指示签名的状态.

powershell code-signing certificate trusted-timestamp

11
推荐指数
2
解决办法
7536
查看次数

已签名和带时间戳的可执行文件执行失败,并且未显示正确的详细信息

请注意,此问题仅适用于Windows Server 2008 SP2

我开发了一个Windows应用程序.在分发之前,我已使用SHA1和SHA256对其进行了签名和时间戳.此应用程序由多个DLL组成.我在构建过程中签署每个DLL.我使用过VeriSign的证书.在执行时,启动应用程序时,它会验证每个DLL的签名和时间戳,以确保使用WinVerifyTrust API 完整性.验证期间我收到"E_CERT_EXPIRED - 签名者证书已过期"错误.

此外,我无法在可执行文件的属性页中看到时间戳细节.请看下面 -

在此输入图像描述

现在,该证书已过期但根据此SO文章代码签名证书到期时会发生什么?.可执行文件应该完美运行没有任何问题.

我还检查了这个KB怀疑原因,但已经应用了与此KB相关的修复.任何人都可以分享更多的亮点吗?

code-signing timestamping windows-server-2008 code-signing-certificate verisign

6
推荐指数
1
解决办法
55
查看次数

如何使用多个时间戳对符号进行编码-我的邮票被覆盖

问题

虽然我在Windows可执行文件上的详细SignTool(手动)命令上没有出现任何错误,但时间戳被覆盖了,我希望有多个时间戳,这可能吗?

  • 如果可能,那怎么办?
  • 如果没有可能,我只使用1个单时间戳,那么你会从长远来看,推荐哪个服务器?(DigiCert现在浮现在我的脑海。)

这是我尝试过的

PowerShell功能

function sign32exe([string]$arg)
{
    & 'C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe' sign /fd sha256 /a $arg
    Start-Sleep -Seconds 5
    & 'C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe' timestamp /tr http://timestamp.globalsign.com/?signature=sha2 /td sha256 /v $arg
    Start-Sleep -Seconds 5
    & 'C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe' timestamp /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v $arg
    Start-Sleep -Seconds 5
    & 'C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe' timestamp /tr http://time.certum.pl /td sha256 /v $arg
}
Run Code Online (Sandbox Code Playgroud)

PowerShell输出

我从SignTool得到了肯定的输出,但是每次调用都会覆盖时间戳(为了更好的可读性而对其进行了重组):

签名过程进行顺利:

Done Adding …
Run Code Online (Sandbox Code Playgroud)

timestamp code-signing signtool

-1
推荐指数
1
解决办法
275
查看次数