Поделиться через


Подписать манифесты приложения и развертывания

Если вы хотите опубликовать приложение с помощью развертывания ClickOnce, манифесты приложения и развертывания должны быть подписаны парой открытого и закрытого ключа и подписаны с помощью технологии Authenticode. Манифесты можно подписать с помощью сертификата из хранилища сертификатов Windows или файла ключа.

Сведения в этой статье применяются только в том случае, если вы используете .NET Framework 4.8.1 или более ранней версии. Если вы используете .NET 5 или более поздней версии, выполните действия, описанные в статье "Развертывание классического приложения для .NET Windows с помощью ClickOnce".

Подписывание манифестов ClickOnce необязательно для приложений на основе.exe. Дополнительные сведения см. в разделе "Создание неподписанных манифестов" этого документа.

Сведения о создании файлов ключей см. в статье "Практическое руководство. Создание пары открытого закрытого ключа".

Сведения о подписи сборок и манифестов приложений см. в разделе "Управление подписыванием сборок и манифестов".

Замечание

Visual Studio поддерживает только файлы ключей PFX, имеющие расширение PFX . Однако вы можете выбрать другие типы сертификатов из хранилища сертификатов Windows текущего пользователя, щелкнув "Выбрать из Магазина " на странице подписывания свойств проекта.

Подписывая с помощью сертификата

Чтобы использовать этот метод, необходимо иметь сертификат, подписанный центром сертификации (ЦС). Сертификаты выдаются сторонними поставщиками услуг сертификации или авторизованными организациями в корпоративной среде.

  1. Перейдите в окно свойств проекта (щелкните правой кнопкой мыши узел проекта в обозревателе решений и выберите свойства). На вкладке "Подписывание" установите флажок "Подписать манифесты ClickOnce ".

  2. Нажмите кнопку "Выбрать из Магазина ".

    Откроется диалоговое окно "Выбор сертификата" и отображается содержимое хранилища сертификатов Windows.

    Подсказка

    Если щелкнуть здесь, чтобы просмотреть свойства сертификата, появится диалоговое окно "Сведения о сертификате ". Это диалоговое окно содержит подробные сведения о сертификате и дополнительных параметрах. Щелкните Сертификаты, чтобы просмотреть дополнительные сведения о справке.

  3. Выберите сертификат, который вы хотите использовать для подписывания манифестов.

    Подсказка

    Если в хранилище нет сертификатов, вы по-прежнему можете подписаться с помощью тестового сертификата.

  4. Кроме того, можно указать адрес сервера метки времени в текстовом поле URL-адреса сервера timestamp . Это сервер, предоставляющий метку времени, указывающую, когда манифест был подписан. Обычно оно предоставляется той же сторонней организацией, которая предлагает сертификаты, подписанные ЦС.

Подпишите, используя существующий файл ключа

  1. На странице подписывания установите флажок "Подписать манифесты ClickOnce ".

  2. Нажмите кнопку "Выбрать из файла ".

    Откроется диалоговое окно "Выбор файла ".

  3. В диалоговом окне "Выбор файла " перейдите к расположению файла ключа (PFX), который вы хотите использовать, и нажмите кнопку "Открыть".

    Замечание

    Этот параметр поддерживает только файлы с расширением PFX . Если у вас есть файл ключа или сертификат в другом формате, сохраните его в хранилище сертификатов Windows и выберите сертификат, описанный в предыдущей процедуре. Назначение выбранного сертификата должно включать подписывание кода.

    Откроется диалоговое окно "Ввод пароля для открытия файла ". (Если PFX-файл уже хранится в хранилище сертификатов Windows или не защищен паролем, вам не будет предложено ввести пароль.)

  4. Введите пароль для доступа к файлу ключа и нажмите клавишу ВВОД.

  5. Выберите дополнительные сведения... чтобы просмотреть свойства сертификата. ClickOnce отображает значение поля Subject в качестве издателя , когда он отображает сертификат при установке приложения пользователем. Ниже приведен пример того, что пользователь видит при установке приложения ClickOnce:

    Снимок экрана: сертификат, показанный во время установки приложения.

Замечание

PFX-файл не может содержать сведения о цепочке сертификатов. Если это так, возникнет следующая ошибка импорта: не удается найти сертификат и закрытый ключ для расшифровки. Чтобы удалить сведения о цепочке сертификатов, можно использовать Certmgr.msc и отключить параметрвключения всех сертификатов при экспорте файла *.pfx.

Подписывая с помощью тестового сертификата

Тестовые сертификаты не подписаны центром сертификации (ЦС) и должны использоваться только для тестирования. Дополнительные сведения о тестовых сертификатах см. в разделе "Как использование центров сертификации помогает пользователям".

  1. На странице подписывания установите флажок "Подписать манифесты ClickOnce ".

  2. Чтобы создать сертификат для тестирования, нажмите кнопку "Создать тестовый сертификат ".

  3. В диалоговом окне "Создание тестового сертификата " введите пароль для защиты тестового сертификата.

Замечание

Не забудьте выбрать sha256RSA в качестве алгоритма подписи, если вы не нацелены на .NET 2.0.

Создание неподписанных манифестов

Подписывание манифестов ClickOnce является необязательным для приложений на основе .exe. В следующих процедурах показано, как создать неподписанные манифесты ClickOnce.

Это важно

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

По умолчанию ClickOnce автоматически создает подписанные манифесты, если только один или несколько файлов не исключаются из созданного хэша. Другими словами, публикация приложения приводит к подписанным манифестам, если все файлы включены в хэш, даже если флажок «Подписать манифесты ClickOnce» снят.

Создание неподписанных манифестов и включение всех файлов в созданный хэш

Чтобы создать неподписанные манифесты, которые включают все файлы в хэш, необходимо сначала опубликовать приложение вместе с подписанными манифестами. Поэтому сначала подпишите манифесты ClickOnce, выполнив одну из предыдущих процедур, а затем опубликуйте приложение.

  1. На вкладке "Подписывание" снимите флажок "Подписать манифесты ClickOnce ".

  2. На вкладке "Публикация" сбросьте версию публикации, чтобы доступна только одна версия приложения. Снимите флажок «автоматически повышать версию с каждой публикацией». По умолчанию Visual Studio автоматически увеличивает номер редакции версии публикации каждый раз при публикации приложения. Дополнительные сведения см. в разделе "Практическое руководство. Настройка версии публикации ClickOnce".

  3. Опубликуйте приложение. Visual Studio сообщает, что приложение было подписано с помощью другого ключа, отличного от существующего приложения на сервере, и спрашивает, нужно ли перезаписать его. Выберите да.

Создание неподписанных манифестов и исключение одного или нескольких файлов из созданного хэша

  1. На странице подписывания снимите флажок "Подписать манифесты ClickOnce ".

  2. На вкладке "Публикация " нажмите кнопку "Файлы приложений ", чтобы открыть диалоговое окно "Файлы приложений " и задайте хэшдля файлов , которые нужно исключить из созданного хэша.

    Замечание

    Исключение файла из хэша настраивает ClickOnce для отключения автоматической подписи манифестов, поэтому не нужно сначала публиковать подписанные манифесты, как показано в предыдущей процедуре.

  3. Опубликуйте приложение.