EV code sign за 4+ тысячи долларов
Когда вы скачиваете файл на Windows — браузер и система проверяют ваш файл на вирусы и репутацию.
Хотите быть доверенным — надо покупать Extended Validation (EV) Code Signing Certificate за много денег, но его мало просто купить, с ним много тонкостей, о которых дальше и пойдет речь и о том как я потратил больше 4к долларов!
Мы пишем приложение на Flutter для управления iOS, macOS и в целом интеграцию с App Store Connect (aso.dev) и как оказалось многие ASO специалисты пользуются только Windows…
Что, как и почему вы можете прочитать в первой статье, а я вернусь к сертификатам.
У нас в принципе macbok’и, причем на m1, поэтому собрать приложение на виртуалке для windows x86 как минимум близкое к невозможному (я пытался).
Сначала я обратился к супер прекрасной программе от Microsoft для стартапов — https://foundershub.startups.microsoft.com/, по которой я довольно просто получил 5к$ на Azure.
Настроил за две недели ci\cd сборку. В целом все просто: тонкости настройки переменных или PATH. Я вспомнил за что не люблю Windows — локально все работает, а в ci\cd — магия…
После сборки установочного .exe файла я понял, что скачать и поставить его с сайта — это большая проблема…
Windows Smart Screen
Гугл выдал информацию про Extended Validation (EV) Code Signing Certificate и Code Signing Certificate, а вот разница между ними 2–3 цены… Долгое изучение деталей показало, что EV — поможет с Windows Smart Screen, а простой сертификат — на 95% не поможет.
EV Code Signing Certificate нельзя хранить файлом, ему нужен HSM или токен, токен через RDP не работает (я тестировал), а сборка у меня только в облаке, поэтому был найден Azure Dedicated HSM с такими ценами:
Цены на HSM
Сертификаты для облака должны поддерживать облако (вроде бы)
Внимательный читатель заметит, что цена указана за ЧАС! Я не заметил и попал на 3+к $! не знаю что бы я делал, если бы это были личные деньги с карты, а не часть гранта!
Счет на месяц
Я удалил все что, смог и нашел по Key Vaults и стал проверять счета каждый день, еще через день я понял, что деньги продолжают утекать, и удалил из удаленных блоки для ключей. На этом мое желание держать сертификаты в облаке закончилось.
Заказали сертификат на IdenTrust. Во время заказа указали разный адрес доставки и оплаты и он не совпал с банковским адресом в банке платежной карты, деньги заморозили на неделю, поддержка ничем не могла помочь. После возврата мы еще раз заказали сертификат, но уже без физического токена и пройти форму оплаты, но нам отказали, так как фирма существует менее 3 лет, деньги шли еще неделю.
Был найден сертификат на SSL.com за 349$ (кошмар), и они достаточно нормально написали что можно работать с YubiKey, хотя и требовали YubiKey FIPS.
Подписать .exe на mac можно, в теории, но я уже что-то был не готов, да и грант только на год, так что все равно скоро нужна будет Windows-машина, поэтому, после долгих исследований, был куплен HP Pro Mini 400 G9 DM/DOS/i5–12500T/8 ГБ/512 ГБ за 58644 RSD (540$), а так же был куплен YubiKey 5C (50$).
Загрузочную Windows флешку для установки можно создать только с Windows!!! (день потрачен впустую)
монитор в ремонте по гарантии, спасает проектор
Для процедуры прохождения проверки компании нужен адрес на Google-картах (не только там, но это самый простой кейс), в общем добавить новую компанию на карты гораздо проще чем обновить информацию о компании, даже если ты ее владелец. У нас адрес был указан и скрыт, при попытке его отобразить они запрашивали видео подтверждение, которое никто кажется не смотрит. Гугл звонил нам 6 раз (три раза общались) -, но это не помогло обновить данные, даже отправляли им информацию, что в уставных документах компании указан тот же адрес — у Google там явно что-то сломано в процессах. В итоге добавили новую точку на картах с адресом, а старую после проверки удалили
После прохождения всех проверок и звонков, обновления данных на Google-картах, на нашу компанию ASO.DEV LLP был выпущен сертификат и начались мои попытки подписать им приложение.
Основная проблема в том что ssl.com желает вам впарить e-codeSign в облаке (дорого), поэтому инструкцию для локального запуска со своим ключом надо искать!
Я не буду пересказывать инструкции, оставлю ссылки здесь и остановлюсь только на деталях:
Тонкости:
с RDP работать НЕ будет!!!
Передавать установочные файлы в Telegram не советую — лучше ссылка через CDN — OS может заблокировать установку
Verify Attestation Certificate with SSL.com and Attach to Order — после загрузки данных, надо или подождать пока обновятся файлы или написать в поддержку — это если у вас будет ошибка подписи.
Нужен ли FIPS — я не знаю, так как был докуплен FIPS после получения ошибки подписи — после нескольких дней мучений, письмо в поддержку все починило (обновили Verify Attestation Certificate, как я понимаю). Подключить второй токен для подписи не смог, так как поругался на отсутствие приватного ключа, дальше не было сил на эксперименты. Эксперты по сертификатам, подскажите FIPS обязательный?
Скриншот не смог (блок), пришлось делать фото
Был еще один важный момент почему мы затеяли покупку сертификата — авто-обновление программы на windows не работало, после подписания сертификата оно НЕ заработало, а вот после исправления в конфиге sparkle: edSignature на sparkle: dsaSignature все заработало.