Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Важный
MakeCert.exe не рекомендуется. Сведения о создании сертификата см. в статье Создание сертификата для подписывания пакета.
Узнайте, как использовать MakeCert.exe и Pvk2Pfx.exe для создания сертификата подписи тестового кода, чтобы подписать пакеты приложений Windows.
Перед развертыванием необходимо обеспечить цифровую подпись упакованных приложений Windows. Если вы не используете Microsoft Visual Studio 2012 для создания и подписывания пакетов приложений, необходимо создать собственные сертификаты подписи кода и управлять ими. Сертификаты можно создавать с помощью MakeCert.exe и Pvk2Pfx.exe из комплекта драйверов Windows (WDK). Затем можно использовать сертификаты для подписывания пакетов приложений, чтобы их можно было развернуть локально для тестирования.
Что нужно знать
Технологии
Необходимые условия
- Средства из WDK MakeCert.exe и Pvk2Pfx.exe
Инструкции
Шаг 1. Определение имени издателя пакета
Чтобы сертификат подписи, который вы создаёте, был совместим с пакетом приложения, который вы хотите подписать, имя субъекта сертификата подписи должно соответствовать атрибуту Publisher элемента Identity в AppxManifest.xml этого приложения. Например, предположим, что AppxManifest.xml содержит:
<Identity Name="Contoso.AssetTracker"
Version="1.0.0.0"
Publisher="CN=Contoso Software, O=Contoso Corporation, C=US"/>
Для параметра publisherName, который вы укажете с помощью программы MakeCert на следующем шаге, используйте значение "CN=Contoso Software, O=Contoso Corporation, C=US".
Заметка
Эта строка параметра указана в кавычках и учитывает регистр и пробелы.
Строка атрибута Publisher, определенная для элемента Identity в AppxManifest.xml, должна совпадать со строкой, указанной с параметром MakeCert /n для имени субъекта сертификата. Скопируйте и вставьте строку по возможности.
Шаг 2. Создание закрытого ключа с помощью MakeCert.exe
Используйте утилиту MakeCert для создания самозаверяющего тестового сертификата и закрытого ключа.
MakeCert /n publisherName /r /h 0 /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" /e <expirationDate> /sv MyKey.pvk MyKey.cer
Эта команда запрашивает у вас пароль для файла с расширением .pvk. Мы рекомендуем выбрать надежный пароль и сохранить закрытый ключ в безопасном расположении.
Мы рекомендуем использовать предлагаемые параметры в предыдущем примере по следующим причинам:
-
/r
-
Создает самоподписанный корневой сертификат. Это упрощает управление тестовым сертификатом.
-
/h 0
-
Помечает основное ограничение для сертификата как конечной сущности. Это предотвращает использование сертификата в качестве центра сертификации (ЦС), который может выдавать другие сертификаты.
-
/eku
-
Задает значения расширенного использования ключей (EKU) для сертификата.
Заметка
Не помещайте пробел между двумя значениями с разделителями-запятыми.
- 1.3.6.1.5.5.7.3.3 указывает, что сертификат действителен для подписи кода. Всегда указывайте это значение, чтобы ограничить предполагаемое использование сертификата.
- 1.3.6.1.4.1.311.10.3.13 указывает, что сертификат поддерживает подпись на весь срок действия. Как правило, если подпись имеет метку времени и сертификат был действителен в момент создания этой метки, подпись остается допустимой, даже если срок действия сертификата истекает. Этот EKU заставляет подпись истекать независимо от того, проставлена ли на ней метка времени.
-
/e
-
Задает дату окончания срока действия сертификата. Укажите значение для параметра expirationDate в формате мм/дд/гггг. Рекомендуется выбрать дату окончания срока действия только до тех пор, пока это необходимо для целей тестирования, как правило, меньше года. Эта дата окончания срока действия в сочетании с EKU для пожизненной подписи может помочь ограничить период, в течение которого сертификат может быть скомпрометирован и неправильно использован.
Дополнительную информацию о других параметрах см. в разделе MakeCert.
Шаг 3. Создание файла Обмена персональными данными (PFX) с помощью Pvk2Pfx.exe
Используйте утилиту Pvk2Pfx для преобразования .pvk и .cer файлов, которые MakeCert создал, в файл .pfx, который можно использовать с SignTool для подписания пакета приложения.
Pvk2Pfx /pvk MyKey.pvk /pi pvkPassword /spc MyKey.cer /pfx MyKey.pfx [/po pfxPassword]
Файлы MyKey.pvk и MyKey.cer являются теми же файлами, которые MakeCert.exe были созданы на предыдущем шаге. Используя необязательный параметр /po, можно указать другой пароль для результирующего PFX-файла; в противном случае pfx имеет тот же пароль, что и MyKey.pvk.
Дополнительные сведения о других параметрах см. в разделе Pvk2Pfx.
Замечания
Создав файл .pfx, его можно использовать с SignTool для подписи пакета приложения. Дополнительные сведения см. в разделе Как подписать пакет приложения с помощью SignTool. Но сертификат все еще не считается доверенным локальным компьютером для установки пакетов приложений, пока он не будет установлен в хранилище доверенных сертификатов этого компьютера. Вы можете использовать Certutil.exe, которые поставляются с Windows.
Установка сертификатов с помощью WindowsCertutil.exe
Запустите Cmd.exe от имени администратора.
Выполните следующую команду:
Certutil -addStore TrustedPeople MyKey.cer
Рекомендуется удалить сертификаты, если они больше не используются. В той же командной строке администратора выполните следующую команду:
Certutil -delStore TrustedPeople certID
certID является серийным номером сертификата. Выполните следующую команду, чтобы определить серийный номер сертификата:
Certutil -store TrustedPeople
Вопросы безопасности
Добавив сертификат в сертификатные хранилища локальной машины, вы влияете на доверие сертификатов всех пользователей на компьютере. Рекомендуется установить все сертификаты подписывания кода, которые требуется для тестирования пакетов приложений в хранилище сертификатов доверенных людей. Немедленно удалите эти сертификаты, если они больше не нужны, чтобы предотвратить их использование для компрометации доверия системы.
Связанные разделы
-
примеры
-
Основные понятия