Certificate 如何使用证书对dll进行双重签名?

Certificate 如何使用证书对dll进行双重签名?,certificate,sign,signtool,Certificate,Sign,Signtool,我们需要使用SHA1和SHA2对dll文件进行签名(以获得在Win XP SP3之前使用SHA1进行签名的证书,以及在Win XP SP3之后使用最高安全性的SHA2进行签名的证书)。我发现了一篇文章,上面说要做下面的事情,但我无法让它工作(在Win8中显示2个证书)。有关双签名dll的示例,请查看Windows 8中.NET framework 4.0中System.Data.dll的证书,您将在“属性”窗口中看到SHA1和SHA2证书 Signtool sign /fd sha256 /ph

我们需要使用SHA1和SHA2对dll文件进行签名(以获得在Win XP SP3之前使用SHA1进行签名的证书,以及在Win XP SP3之后使用最高安全性的SHA2进行签名的证书)。我发现了一篇文章,上面说要做下面的事情,但我无法让它工作(在Win8中显示2个证书)。有关双签名dll的示例,请查看Windows 8中.NET framework 4.0中System.Data.dll的证书,您将在“属性”窗口中看到SHA1和SHA2证书

Signtool sign /fd sha256 /ph /as /sha1 XX...XX $(TargetPath)

有人知道怎么做吗?谢谢
-jp

我明白了。下面是你如何做到这一点。希望这对其他人有所帮助:

signtool sign /fd sha1 /f sha1cert.pfx /p password file.dll
signtool sign /as /fd sha256 /f sha2cert.pfx /p password file.dll

*必须至少使用VS2012开发者命令提示符进行SHA2签名

关键点是使用辅助签名步骤上的/as开关“追加签名”。如果你不包括它,它只会覆盖第一个签名