Издатель неизвестен после успешного запуска signTool
Я пытаюсь создать тестовый сертификат и подписать созданный мной файл.MSI. Мне нужно, чтобы тестовая версия работала с подписанным.MSI, прежде чем мы сможем приобрести настоящий сертификат безопасности.
Я выполнил следующие шаги, чтобы подписать мой файл.MSI. Все завершается успешно, и отображается сообщение о том, что 1 файл был успешно подписан после последнего шага.
makecert.exe -sv c:\Test\mykey.pvk -n "CN=WTS" c:\Test\myCert.cer
cert2spc.exe c:\Test\mycert.cer c:\Test\mycert.spc
pvk2pfx -pvk c:\Test\mykey.pvk -pi password -spc c:\Test\mycert.spc -pfx c:\Test\mycert.pfx -po password
signTool sign /f c:\Test\mycert.pfx /p password /v c:\Test\test.msi
После выполнения этих шагов я запускаю файл.MSI (дата, измененная для MSI, изменяется в соответствии со временем выполнения шага signTool). Предупреждающее сообщение о том, что это.MSI от неизвестного издателя, по-прежнему отображается как "Издатель: неизвестен".
Я пропустил шаг или что-то? Кажется, все работает правильно, я никогда не вижу никаких ошибок, но мой файл не подписан.
3 ответа
Ваш файл подписан. Windows объявляет издателя неизвестным, поскольку не доверяет идентификатору издателя в подписи.
Помните, что в мире цифровых подписей вам всегда нужно проверять как минимум две вещи одновременно, или все упражнение не имеет смысла. Вы должны проверить имя в подписи, а также вам нужно найти доверительную ссылку от чего-то, кому вы уже доверяете (например, центр сертификации или сертификат, добавленный вручную как доверенный), до подписи, которую вы проверяете. Только тогда имеет смысл доверять имени на подписи и, возможно, отображать его пользователю операционной системы.
В веб-браузере перейдите в Инструменты / Свойства обозревателя / Содержимое / Издатели / Сертификаты и добавьте свой тестовый сертификат в доверенные издатели.
(Другой браузер может иметь ту же функцию в меню "Настройки" / "Показать дополнительные настройки" / "HTTPS/SSL / Управление сертификатами".)
И повторите. Это не сработает, но я не знаю почему, и это поучительная игра.
Неясно, есть ли в Windows способ установить цепочку доверия, если ваш сертификат самодельный и нет центра сертификации, который бы его поддерживал. Этот источник говорит:
Если вы используете тестовый (самостоятельно созданный) сертификат, в диалоговых окнах установки появится сообщение "Неизвестный издатель". Для приложений, развернутых внутри организации, это приемлемая практика ".
Однако вы можете создать свой собственный центр сертификации, как описано здесь, и добавить сертификат CA в список доверенных корневых центров сертификации. Делая это, вы в основном позволяете любому сертификату, выданному этим CA, подписывать что-либо и доверять Windows.
Это также может произойти, если вы не использовали ключ "/d", чтобы указать описание при подписании пакета. Дополнительные сведения см. В разделе "Параметры командной строки" на этой странице: http://msdn.microsoft.com/en-us/library/8s9b9yaz.aspx
У меня была такая же проблема, и я обнаружил, что Microsoft больше не доверяет сертификатам с алгоритмом "ша 1".
Я решил проблему, попросив мой CA заменить сертификат.