Как функционирует система сертификатов в iOS?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Сертификаты используются для криптографической подписи и верификации приложений, профилей подготовки и соединений. Ключевые компоненты: Apple Root Certificate, Intermediate Certificates, Developer Certificates, Distribution Certificates и Provisioning Profiles.
Apple Root Certificate — корневой центр сертификации Apple, является доверенным.
Intermediate Certificates — промежуточные сертификаты, связывающие корневой сертификат и конечные сертификаты разработчика/распространения.
Developer Certificate — идентифицирует разработчика для целей разработки и отладки на зарегистрированных устройствах.
Distribution Certificate — используется для подписи приложений перед распространением через App Store, Enterprise Programs или Ad Hoc.
Provisioning Profile — связывает ID приложения, сертификаты разработчика/распространения и зарегистрированные устройства (для Ad Hoc и разработки). Определяет, какие службы Apple может использовать приложение (например, Push Notifications, Capabilities).
Процесс:
- Создается запрос подписи сертификата (CSR) на машине разработчика.
- CSR загружается на портал Apple Developer.
- Apple выпускает сертификат разработчика или распространения.
- Сертификат устанавливается в хранилище ключей (Keychain) на машине разработчика.
- Создается Provisioning Profile на портале Apple Developer, связывающий ID приложения, сертификат и устройства. Профиль также загружается и устанавливается.
- Приложение подписывается с использованием сертификата и Provisioning Profile во время сборки.
- При установке на устройство или перед публикацией в App Store подпись и Provisioning Profile проверяются системой iOS.
Проверка: Система iOS проверяет цепочку доверия сертификата, идущую от сертификата приложения к Apple Root Certificate, и валидность Provisioning Profile. Если что-то неверно, установка или запуск приложения блокируется.
provisioning profile
.mobileprovision // файл
includes:
- App ID
- Certificates (Developer/Distribution)
- Device UDIDs (for Dev/Ad Hoc)
- Entitlements (capabilities)
certificate
.cer // файл
signed by Apple
linked to private key in Keychain