Использование. Net Отложенная подпись с сертификатом Digicert - PullRequest
0 голосов
/ 10 февраля 2020

У нас есть ключ подписи pfx от digicert, который мы используем в качестве отложенной подписи, но когда мы устанавливаем его на компьютер, он не будет работать, если мы не добавим исключение для этого отложенного ключа подписи (sn.exe -Vr *, ). Это должно быть возможно, верно? Или я что-то упустил? Я создал ключ для отложенной подписи:

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

И затем мы используем DelayedSigning.snk в C#. net сборках в качестве отложенной подписи: 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 - сборка с подписью с задержкой или подписью с проверкой» - как получилось?

1 Ответ

2 голосов
/ 14 февраля 2020

спасибо за ответы, да, я наконец-то понял, что строгое подписывание и подписывание кода - это две разные вещи. Решение состоит в том, чтобы создать отдельный код подписи для строгой подписи: 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

...