visual studio подпись приложения

Практическое руководство. Подписывание сборки строгим именем

Существует несколько способов подписать сборку строгим именем:

С использованием Подписывание в диалоговом окне Свойства проекта в Visual Studio. Это самый простой и удобный способ подписать сборку строгим именем.

С использованием параметров компилятора.

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

Создание и подпись сборки строгим именем с помощью Visual Studio

В обозревателе решений откройте контекстное меню проекта и выберите Свойства.

Чтобы отложить подпись сборки, выберите файл открытого ключа.

Создание и подпись сборки строгим именем с помощью компоновщика сборок

al /out: /keyfile:

assemblyName — это имя строго подписанной сборки (файл DLL или EXE ), которая будет создана компоновщиком сборок.

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

Следующий пример подписывает сборку MyAssembly.dll строгим именем с помощью файла ключа sgKey.snk.

Дополнительные сведения об использовании этого инструмента см. в разделе Компоновщик сборок.

Подпись сборки строгим именем с помощью атрибутов

Добавьте System.Reflection.AssemblyKeyFileAttribute или AssemblyKeyNameAttribute в файл исходного кода и укажите имя файла или контейнера, содержащего пару ключей, которая используется при подписи сборки строгим именем.

Компилируйте файл исходного кода в обычном режиме.

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

Подпись сборки строгим именем с использованием компилятора

Компилируйте файлы исходного кода с помощью параметра компилятора /keyfile или /delaysign в C# и Visual Basic либо параметра компоновщика /KEYFILE или /DELAYSIGN в C++. После имени параметра добавьте двоеточие и имя файла ключей. При использовании компиляторов, работающих в режиме командной строки, можно скопировать файл ключей в каталог, содержащий файлы исходного кода.

Подробные сведения об отложенной подписи см. в разделе Отложенная подпись сборки.

Источник

Страница «Подписывание» в конструкторе проектов

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

Обратите внимание, что подпись манифестов приложения и развертывания отличается от подписи сборки, хотя обе задачи выполняются на странице Подписывание.

Кроме того, хранилище сведений о файле ключа для подписи манифеста и сборки различается. Для подписи манифеста сведения о ключе хранятся в базе данных криптографического хранилища на вашем компьютере и в хранилище сертификатов текущего пользователя Windows. Для подписи сборки информация о ключе хранится только в базе данных криптографического хранилища на вашем компьютере.

Чтобы открыть страницу Подписывание, выберите узел проекта в обозревателе решений и затем в меню Проект щелкните команду Свойства. После того, как откроется окно Конструктор проектов, перейдите на вкладку Подписывание.

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

Флажок Подписать манифесты ClickOnce

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

Кнопка Выбрать из хранилища

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

При нажатии кнопки Выбрать из хранилища открывается диалоговое окно Выбор сертификата, где перечислены сертификаты в вашем хранилище личных сертификатов, которые действительны в настоящее время (с неистекшим сроком действия) и имеют закрытые ключи. Назначение выбранного сертификата должно включать в себя подписывание кода.

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

Кнопка Выбрать из файла

Позволяет выбрать сертификат из существующего файла ключа.

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

В диалоговом окне Введите пароль, чтобы открыть файл введите пароль для открытия файла ключа сертификата (PFX). Сведения о пароле хранятся в списке контейнера личных ключей и хранилище личных сертификатов.

Кнопка Создание тестового сертификата

Позволяет создать сертификат для тестирования. Тестовый сертификат используется для подписи манифестов развертывания и приложения ClickOnce.

При выборе элемента Создание тестового сертификата открывается диалоговое окно Создание тестового сертификата, в котором можно ввести пароль для файла ключа строгого имени для тестового сертификата. Этот файл имеет имя имя_проекта _TemporaryKey.pfx. Если нажать кнопку ОК без ввода пароля, PFX-файл не шифруется с использованием пароля.

Поле URL-адрес сервера меток времени

Указывает адрес сервера, ставящего метку времени для вашей подписи. При предоставлении сертификата этот внешний сайт проверяет время подписывания приложения.

Подпись сборки

Флажок Подписать сборку

Установите этот флажок, чтобы подписать сборку и создать файл ключа со строгим именем. Дополнительные сведения о подписи сборки с помощью конструктора проектов см. в разделе Практическое руководство. Подписывание сборки (Visual Studio).

Для подписывания сборки этот параметр использует средство Al.exe из Windows Software Development Kit (пакет SDK). Дополнительные сведения о Al.exe см. в разделе Практическое руководство. Подписание сборки строгим именем.

Список Выберите файл ключа строгого имени

Кнопка Смена пароля

Изменяет пароль для файла ключа обмена личной информацией (PFX), который используется для подписи сборки.

При выборе элемента Смена пароля открывается диалоговое окно Изменение пароля ключа. В поле Старый пароль этого диалогового окна указан текущий пароль для файла ключа. Новый пароль должен содержать по меньшей мере 6 символов. Информация о пароле хранится в хранилище сертификатов текущего пользователя Windows.

Флажок Только отложенная подпись

Установите этот флажок, чтобы включить отложенную подпись.

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

Источник

Практическое руководство. Подписание манифестов приложения и развертывания

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

Дополнительные сведения о развертывании ClickOnce см. в статье Развертывание и безопасность технологии ClickOnce.

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

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

Вход с использованием сертификата

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

Нажмите кнопку Выбрать из хранилища.

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

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

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

Кроме того, можно указать адрес сервера меток времени в текстовом поле URL-адрес сервера меток времени. Этот сервер предоставляет метку времени, указывающую, когда был подписан манифест.

Вход с использованием существующего файла ключа

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

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

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

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

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

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

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

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

Вход с использованием тестового сертификата

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

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

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

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

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

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

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

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

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

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

Выполните сброс версии публикации, чтобы доступной была только одна версия приложения. По умолчанию Visual Studio автоматически увеличивает номер редакции для версии публикации при каждой публикации приложения. Дополнительные сведения см. в статье Практическое руководство. Установка версии публикации приложения ClickOnce.

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

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

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

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

Источник

Практическое руководство. Подписывание файлов установки с помощью программы SignTool.exe (ClickOnce)

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

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

Генерирование неподписанной программы установки и ее последующая подпись

На компьютере разработчика установите сертификат для подписи манифестов.

Выберите проект в обозревателе решений.

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

На странице Публикация щелкните Необходимые компоненты.

Убедитесь, что все необходимые компоненты выбраны, и нажмите кнопку ОК.

На странице Публикация проверьте настройки публикации и нажмите кнопку Опубликовать сейчас.

Решение опубликует неподписанный манифест приложения, неподписанный манифест развертывания, файлы конкретной версии и неподписанную программу установки в расположение папки для публикации.

На странице Публикация щелкните Необходимые компоненты.

В диалоговом окне Необходимые компоненты снимите флажок Создать программу установки для необходимых компонентов.

На странице Публикация проверьте настройки публикации и нажмите кнопку Опубликовать сейчас.

Решение опубликует подписанный манифест приложения, подписанный манифест развертывания и файлы конкретной версии в расположение папки для публикации. Неподписанная программа установки в процессе публикации не переписывается.

На сайте клиента откройте командную строку.

Перейдите в каталог, содержащий файл .EXE.

Введите следующую команду, чтобы подписать файл .EXE:

Например, для подписи программы установки используются следующие команды:

Источник

Как создать работающий доверенный и / или самозаверяющий сертификат для приложения Windows 10 UWP с помощью Visual Studio 2019, 2017 и 2015

В этой документации:

Следующая команда описывает создание cer-файла Windows (т. Е. Сертификата от доверенного провайдера).

Проблема заключается в том, что при создании приложения в Visual Studio 2017 он разрешает только через package.windows10.appxmanifest файл pfx. при обновлении этой ссылки на командную строку он не создает файл pvk, поэтому необходимо добавить

Дополнительные параметры командной строки, такие как / sv SubjectKeyFile, которые будут создавать результирующий файл pvk.

Однако даже используя эту ссылку на командную строку:

В результате имплантации файла сертификата в Visual Studio возникает следующая ошибка:

Разработчику манифеста не удалось импортировать сертификат.

Выбранный вами сертификат недействителен для подписи, так как срок его действия истек или возникла другая проблема. Для получения дополнительной информации см. http://go.microsoft.com/fwlink/?LinkID=241478

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

Есть ли лучший способ создать сценарий с помощью makecert? Как узнать, правильно ли создается сертификат? Дополнительная документация была бы полезна, но я не нашел ничего другого.

2 ответа

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

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

Во-первых, нужно спросить себя, для чего они используют приложение? Будет ли приложение загружено в Microsoft Store или оно предназначено только для внутреннего использования.

В любом случае вы захотите отладить и разработать приложение. Отладка не требует установки сертификата, так что в этом смысле мы в безопасности.

Если вы используете приложение внутри своей организации или просто на своем локальном компьютере, вам понадобится доверенный сертификат.

Этот сертификат может существовать в нескольких различных сценариях.

Я рассмотрю оба сценария. В любом случае протокол makecert устарел Замечания по прекращению поддержки makecert

Сценарий 1. Если вам нужен самозаверяющий сертификат, выполните следующие действия

Вот ссылки для перехода *** Обязательно прочтите 1A перед созданием сертификата:

1А. *** Когда вы создаете New-SelfSignedCertificate, вы должны понимать, что сертификат должен быть создан очень специфическим образом. Это для самозаверяющего сертификата или сертификата, выданного ЦС.

В частности, сертификат должен обладать двумя свойствами.

Подпись кода (1.3.6..1.5.5.7.3.3) 26

Ссылка выше в вашем случае используется для создания сертификата Windows для драйвера. Если вы хотите создать сертификат для своего пакета UWP, вы можете выполнить следующие шаги:

Шаг 1. Определите имя издателя пакета

Шаг 2. Создайте закрытый ключ с помощью MakeCert.exe

Шаг 3. Создайте файл обмена личной информацией (.pfx) с помощью Pvk2Pfx.exe

И вы также можете использовать приведенную ниже команду для непосредственного создания сертификата. Вам нужно только заменить параметр CN на свой параметр.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • visual studio переход между формами
  • visual studio кроссплатформенное приложение