Купить и интегрировать внешние сертификаты для приложения UWP - PullRequest
0 голосов
/ 15 января 2019

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

Так что в основном у меня есть загруженное приложение UWP (которое я создал с помощью Visual Studio), где сертификат заканчивается в течение следующих нескольких дней. Я смог продлить сертификат, создав новый, который также может остаться в живых в течение 1 года. Но я задавался вопросом, возможно ли продлить его с 1 года до 5 или около того. «Решения», которые я нашел, это либо купить сертификат, либо создать его самостоятельно.

Хорошо о покупке: я искал через Интернет, но не мог сказать, что я на самом деле ищу. Есть несколько разных сертификатов, и я не знаю, какие мне нужны для приложения UWP. Кто-нибудь знает, на что мне смотреть? Покупка одного дорогая, и я бы предпочел не покупать неправильный.

Теперь о создании самого себя. Есть несколько советов о том, как это сделать, но после прочтения некоторых советов было похоже, что «руководства» были неполными. Некоторые способы устарели. Некоторые другие не дали мне достаточно информации, чтобы я мог сделать это сам. У кого-нибудь есть хорошее руководство о том, как создать собственный сертификат с более длинным жизненным циклом для загруженных приложений UWP?

(Также не очень важный вопрос, но позже он, вероятно, будет важен. Как бы вы интегрировали купленный / самостоятельно созданный сертификат?)

1012 * редактировать *

Хорошо, пока я создал сертификат для подписи пакетов примерно так: я открыл Power Shell и записал в нем следующее:

$notAfter = [datetime]::Today.AddYears(5)
$thumb = (New-SelfSignedCertificate -Type Custom -Subject "CN=myCN" -KeyUsage DigitalSignature -FriendlyName iTest -CertStoreLocation "Cert:\LocalMachine\My" -NotAfter $notAfter).Thumbprint
$pwd = ConvertTo-SecureString -String t -Force -AsPlainText 
Export-PfxCertificate -cert "Cert:\LocalMachine\My\$thumb" -FilePath C:\MyTest.pfx -Password $pwd

Затем я установил этот сертификат следующим образом:

  1. На ПК с Windows RT либо сопоставьте сетевой ресурс, либо подключите USB-диск, на котором вы можете получить доступ к папке AppPackages, которая содержит пакет приложения для установки. Используйте Windows Explorer, чтобы открыть эту папку.
  2. Дважды нажмите файл сертификата в папке, а затем нажмите Установить Сертификат. Появится мастер импорта сертификатов.
  3. В группе «Местоположение хранилища» нажмите переключатель, чтобы изменить выбранный параметр на «Локальный компьютер».
  4. Нажмите Далее. Нажмите OK, чтобы подтвердить диалог UAC.
  5. В на следующем экране мастера импорта сертификатов измените выбранное Возможность разместить все сертификаты в следующем магазине.
  6. Нажмите Кнопка просмотра. Во всплывающем окне «Выбор хранилища сертификатов» выполните прокрутку. вниз и выберите Надежные люди, а затем нажмите OK.
  7. Нажмите кнопку «Далее»; появляется новый экран. Нажмите кнопку Готово.
  8. Диалог подтверждения должен появиться; если это так, нажмите ОК. (Если другой диалог показывает, что Возникла проблема с сертификатом, возможно, вам придется Устранение неполадок сертификата. Тем не менее, описывая, что делать в этом дело выходит за рамки этой темы.)

Затем в Visual Studio я вхожу в свойства моего Package.appxmanifest -> Выбрать сертификат -> Выбрать из файла Я выбираю свой файл и получаю это сообщение об ошибке:

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

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

Но это не помогает мне. Я предполагаю, что я пропустил много шагов. Что еще мне нужно сделать?

edit2

Я пытался использовать signtool с windows powershell:

signtool sign /fd sha256 /a /f C:\MyTest.pfx /p t C:\path\to\Package.appxmanifest

Это не сработало. Сообщение об ошибке (бесплатный перевод с немецкого на английский):

signtool: имя "signtool" не идентифицировано как имя командлета, функции, файла сценария или исполняемого файла. Проверьте правильное имя или путь к нему и повторите попытку.

Мой signtool.exe находится здесь: C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ x86

1 Ответ

0 голосов
/ 15 января 2019

Когда вы создаете самозаверяющий сертификат с помощью командлета New-SelfSignedCertificate PowerShell, вы можете использовать параметр NotAfter, чтобы указать дату и время истечения срока действия сертификата. Пожалуйста, см. документы для примера.

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

Если приложение подписано сертификатом, который связывается с доверенным корневым центром на клиентском компьютере, вам не нужно импортировать сертификат. Большинство сертификатов, которые вы покупаете у центра сертификации (CA) , это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...