Могу ли я подписать приложение Windows Store с помощью доверенного сертификата подписи кода?

У нас есть приложение Windows UWP, которое в настоящее время находится в магазине Microsoft. Проект включает файл ассоциации магазина, который содержит атрибуты издателя, одним из которых является Общее имя. Учетная запись нашего магазина показывает CN в виде строкового значения, напоминающего GUID. Отображаемое имя отображается как название нашей компании. В Visual Studio мы можем создать приложение для загрузки неопубликованных приложений и подписи кода с помощью самозаверяющего сертификата, в котором CN сертификата совпадает с CN Store (GUID как строка). Это позволяет нам загружать новые версии приложения поверх версии в магазине для тестирования и быстрого предоставления новых функций конкретным клиентам. Затем загруженная неопубликованная версия в конечном итоге может быть обновлена ​​новыми опубликованными версиями магазина.

У меня такой вопрос: мы хотели бы подписать приложение с помощью сертификата подписи кода, который мы приобретаем в надежном центре сертификации. Проблема в том, что сертификаты для подписи доверенного кода должны иметь общее имя в качестве названия компании. Кажется, мы можем подписать приложение только с помощью сертификата, у которого общее имя равно CN в файле ассоциации магазина (GUID как строка). Это известное ограничение на хранение связанных приложений или мы что-то упускаем?


person Michael M.    schedule 18.06.2020    source источник


Ответы (1)


TL; DR; Любое приложение, опубликованное в MS Store, будет подписано только сертификатами Microsoft. Вы не можете использовать собственный сертификат для публикации приложения в магазине.

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

GUID, который вы видите в CN (для сертификата, автоматически сгенерированного VS), на самом деле является механизмом, подобным закрытому ключу, который MSFT использует, чтобы гарантировать, что приложение, опубликованное в магазине, действительно отправлено его реальным владельцем (т. Е. Я предполагаю избежать какой-то человек посередине атакует, когда злоумышленник может каким-то образом загрузить поврежденную версию вашего приложения).

Как только ваше приложение поступит в магазин и пройдет все проверки, MSFT подпишет его своим собственным сертификатом. Я полагаю, именно так служба AppInstaller (или приложение Store из Windows 10) узнает, что можно доверять любому приложению, подписанному их сертификатом.

person Bogdan Mitrache    schedule 19.06.2020
comment
Спасибо @Bogdan за понимание. Ваше объяснение было полезным и ценно. - person Michael M.; 20.06.2020
comment
@Bogdan У меня похожий вопрос. Я знаю, что любое приложение, опубликованное в MS Store, будет подписано только сертификатами Microsoft. Итак, можно ли будет приобрести этот сертификат для подписи кода в Microsoft? - person surajitk; 28.10.2020
comment
Нет, это их частный сертификат. Предоставление доступа третьей стороне равносильно нарушению безопасности. Почему вы хотите приобрести этот сертификат? Расскажите подробнее о вашем сценарии, я никогда не слышал, чтобы кто-то хотел сделать что-то подобное ... - person Bogdan Mitrache; 30.10.2020