Я пытаюсь запустить два разных программного обеспечения, оба подписаны с одинаковыми сертификатами. Одна из программ запускается правильно, а другая запрашивает учетные данные администратора каждый раз, потому что она не подписана должным образом.

Как это возможно, поскольку он использует точно такие же сертификаты?

Смотрите фотографии ниже:

Действительный сертификат: https://imgur.com/a/YwbTG

Неверный сертификат: https://imgur.com/a/1DNr7

1 ответ1

2

Опираясь на комментарий @ Джонатана:

В вашем "действительном" случае отметка времени, встроенная в подпись программы, находится в пределах дат действия notBefore и notAfter для подписывающего сертификата. Подпись все еще действительна, и сертификат, использованный для ее подписи, был действителен в то время, так что все в двух отношениях. (Если для CodeSign требуется все еще действующий сертификат, вам придется заменять всю ОС каждые 15 месяцев или около того, если срок действия сертификата подписи истек).

Во втором случае сертификат, казалось бы, использовался для подписи кода после истечения срока его действия, поэтому подпись / сертификат считаются недействительными.

Вот снимок экрана, показывающий время подписания случайной библиотеки DLL на моем компьютере (подписано 2015-01-25T21:47:53) с сертификатом, срок действия которого истек, но CertUI показывает, что он удовлетворен.

Просмотр сведений о цифровой подписи с истекшим сертификатом

Если бы я нажал кнопку "Копировать в файл" на вкладке сведений и дважды щелкнул этот файл в проводнике, он теперь будет отображаться как просроченный, так как он больше не имеет контекста в диалоговом окне сведений о цифровой подписи, в котором указано, какую дату он должен использовать для оценки (поэтому он выбирает текущую дату / время)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .