Если вы подписали код без использования службы отметки времени, по истечении срока действия сертификата ваш код больше не будет доверенным, и в зависимости от настроек безопасности его запуск может быть запрещен. Вам нужно будет повторно подписывать весь свой код с новым сертификатом или с обновленным сертификатом каждые 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, вы можете сделать следующее:
Get-AuthenticodeSignature MyFile.ps1 | fl *
Он дает вам тему (CN, OU и т. Д.), Эмитента, даты до / после и отпечатки как для вашего сертификата, так и для сертификата метки времени. Вы также получите сообщение о статусе подписи.