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