Я читал Что происходит, когда срок действия сертификата подписи кода истекает - Stack Overflow и задается вопросом о более надежном ответе. Ответ был больше связан с настройкой собственного СА. Даже с вашим собственным центром сертификации вам все равно придется иметь дело с истекающими сертификатами кода.
Если вы подписали код без использования службы штамповки времени, после истечения срока действия сертификата ваш код больше не будет доверен, и в зависимости от настроек безопасности его нельзя будет запускать. Вам нужно будет переписать весь свой код с новым сертификатом или с обновленным сертификатом каждые 1 или 2 года.
Надежная (цифровая) временная привязка позволяет использовать цифровую подпись даже после того, как истек срок действия сертификата. Вам нужно будет переписать код с новым сертификатом, только если вы внесли изменения.
Все это звучит правильно? Если это так, мне нужны рекомендации о том, какой сервис timestamping использовать, желательно от того, кто его использовал. Я также хотел бы знать, есть ли какие-либо внутренние решения, похожие на собственные CA.
В настоящее время это относится к сценариям PowerShell, но в конечном итоге у меня будет такая же проблема с другим кодом.
Обновить: пример того, как подписать PS script с меткой времени (для этого вы можете сделать script):
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"
Затем, чтобы увидеть сертификат подписчика и сертификат TimeStamper, вы можете сделать это:
Get-AuthenticodeSignature MyFile.ps1 | fl *
Он предоставляет вам тему (CN, OU и т.д.), Эмитент, До/После Даты и Отпечатки для вашего сертификата и сертификата timestamper. Вы также получите сообщение о статусе подписи.