Sobes.tech
Middle+

Как работи системата за сертификати в iOS?

sobes.tech AI

Отговор от AI

Сертификатите се използват за криптографско подписване и проверка на приложения, профили за подготовка и връзки. Основни компоненти: Apple Root сертификат, Междинни сертификати, Разработващи сертификати, Разпространителски сертификати и Provisioning профили.

Apple Root сертификатът е доверен коренов сертификат на Apple.

Междинните сертификати свързват кореновия сертификат с крайните сертификати на разработчика/разпространителя.

Разработващият сертификат идентифицира разработчика за цели на разработка и отстраняване на грешки на регистрирани устройства.

Разпространителският сертификат се използва за подписване на приложения преди разпространението им чрез App Store, Enterprise програми или Ad Hoc.

Provisioning профилът свързва ID на приложението, сертификатите на разработчика/разпространителя и регистрираните устройства (за Ad Hoc и разработка). Определя какви услуги на Apple може да използва приложението (например Push Notifications, Capabilities).

Процес:

  1. Създава се заявка за подписване на сертификат (CSR) на машината на разработчика.
  2. CSR се качва в портала Apple Developer.
  3. Apple издава сертификат на разработчик или разпространител.
  4. Сертификатът се инсталира в хранилището на ключове (Keychain) на машината на разработчика.
  5. Създава се Provisioning профил в портала Apple Developer, който свързва ID на приложението, сертификата и устройствата. Профилът също се качва и инсталира.
  6. Приложението се подписва с използване на сертификата и Provisioning профила по време на компилацията.
  7. При инсталиране на устройство или преди публикуване в App Store, подписът и Provisioning профилът се проверяват от системата iOS.

Проверка: Системата iOS проверява веригата на доверие на сертификата, която започва от сертификата на приложението до Apple Root сертификата, и валидността на Provisioning профила. Ако нещо е грешно, инсталирането или стартирането на приложението се блокира.

Provisioning профил
  .mobileprovision // файл
  съдържа:
    - ID на приложението
    - Сертификати (Разработчик/Разпространител)
    - UDID на устройства (за Dev/Ad Hoc)
    - Entitlements (възможности)

Сертификат
  .cer // файл
  подписан от Apple
  свързан с частния ключ в Keychain