Использование отложенной подписи .Net с сертификатом Digicert
У нас есть ключ подписи pfx от digicert, который мы используем в качестве отложенной подписи, но когда мы устанавливаем его на компьютер, он не запускается, если мы не добавим исключение для этого ключа отложенной подписи (sn.exe -Vr *,). Это должно быть возможно, правда? Или я что-то упускаю? Я создал ключ отложенной подписи:
sn -p d:\DigCert.pfx DelayedSigning.snk
А затем мы используем DelayedSigning.snk в сборках C# .net в качестве отложенной подписи:
А затем после компиляции и обфускации мы используем 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 - это сборка с отложенной или тестовой подписью". Почему?
1 ответ
Спасибо за ответы, да, я наконец понял, что подписывание строгого имени и подписывание кода - это две разные вещи. Решение состоит в том, чтобы создать отдельный код подписи для надежной подписи: 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 с частным ключом подписи строгого имени (информация в последней ссылке). Затем после подписания строгого имени подпишите сертификат digicert с помощью signtool.exe. https://www.digicert.com/kb/code-signing/signcode-signtool-command-line.htm