使用具有Digicert证书的.Net延迟签名

问题描述 投票:-1回答:1

我们有来自digicert的pfx签名密钥,我们将其用作延迟签名,但是当我们将其安装在计算机上时,它将无法运行,除非我们为该延迟签名密钥添加排除项(sn.exe -Vr *,) 。应该有可能吧?还是我错过了什么?我创建了一个延迟签名密钥:

sn -p d:\DigCert.pfx DelayedSigning.snk

然后我们在C#.net程序集中使用DelayedSigning.snk作为延迟签名:enter image description here

然后进行编译和模糊处理后,我们使用signtool用全键进行签名:

signtool.exe sign /f d:\DigCert.pfx /p ourPW /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a outputPath\*.dll

[然后就像我说的,如果我们尝试在干净的Windows 10操作系统上运行,除非添加延迟的签名排除(sn.exe -Vr *,),否则它将无法正常工作。有什么想法吗?

注意:当我在其中一个程序集上运行sn -V时,它说“ XXXXX.dll是一个有延迟签名或测试签名的程序集-怎么了?

.net signing assembly-signing digicert
1个回答
2
投票

感谢您的回答,是的,我终于意识到强名称签名和代码签名是两回事。解决方案是为强签名创建单独的签名代码:https://docs.microsoft.com/en-us/dotnet/standard/assembly/create-use-strong-named,然后创建延迟签名密钥:https://docs.microsoft.com/en-us/dotnet/standard/assembly/delay-sign,并在具有延迟签名的项目中使用它。发货之前,请使用带有私有强名称签名密钥(最后一个链接中的信息)的sn.exe对其进行签名。然后,在将其强记号签名后,使用signtool.exe与digicert证书进行签名。 https://www.digicert.com/kb/code-signing/signcode-signtool-command-line.htm

© www.soinside.com 2019 - 2024. All rights reserved.