У меня есть приложение Xamarin, которое я также хочу развернуть в Windows UWP.Я попытался создать самозаверяющий сертификат с помощью makecert.exe, но Visual Studio не примет его.Я следовал этому руководству от microsoft .Это моя команда:
makecert.exe -n "CN=some AG" -r -pe -ss my -eku 1.3.6.1.5.5.7.3.3 ContosoTest.cer
При попытке импортировать этот сертификат из хранилища сертификатов в Visual studio Package.appxmanifest будет выдано сообщение "Kein Zertifikat erfüllt die Anwendungskriterien"
(извините за немецкий, я переключил компьютер на английский, но это сохранилось на немецком языкепочему-то) примерно переводится как "No certificate complies to the Applications criteria"
.Когда я экспортирую сертификат в файл pfx и пытаюсь импортировать его, он просто будет жаловаться "The Manifest Designer could not import the certificate. The Manifest Designer could not import from file <filepath>."
.
Он работает с тестовыми сертификатами, созданными непосредственно в редакторе Package.appxmanifest, однако он не будет принимать сертификатыот makecert, хотя официальное руководство Microsoft утверждает, что это должно работать так.Тестовые сертификаты, созданные Visual Studio, содержат ту же цель подписания кода 1.3.6.1.5.5.7.3.3
Я также попробовал это с PowerShell New-SelfSignedCertificate и Export-PfxCertificate, однако это имело тот же эффект.
Чтобы избежать проблемы XY , вот причина, по которой я пытаюсь использовать сертификат makecert вместо тестового сертификата, созданного Visual Studio.Пакет приложения будет подписан клиентом с другим сертификатом, которым он не хочет делиться с нами закрытым ключом (понятно).По его словам и Google должно быть возможно отказаться от пакета приложения с помощью signtool, если сертификаты имеют тот же издатель.
Сертификат нашего клиента включает помимо CN=some AG
и другую информацию в форме OU=blabla,O=some AG,L=city,S=state,C=DE
.Я не могу ввести эту информацию в название для тестового сертификата в visual studio.Он будет жаловаться, что знак равенства =
не допускается в названии.Поэтому я пытаюсь создать сертификат с этой информацией другим способом.Когда Visual Studio не взяла сертификат Makecert, я удалил эту дополнительную информацию, чтобы узнать, является ли это причиной.Однако, как вы можете видеть в приведенной выше команде, даже простой сертификат с CN=some AG
не работает, в то время как Visual Studio позволяет мне создавать сертификат с таким простым именем.
Любая помощь приветствуется.Я пробовал множество разных способов создания сертификата, только с помощью make-cert и powershell я смог добавить цель подписи кода, однако даже тогда Visual Studio не примет его.Хотя руководство Microsoft говорит, что это должно.