Apple Certificate — що це таке, які бувають типи та як працює

Автор: IT Sectr Опубліковано: 2026-04-16 Час читання: 9 хв

Apple Certificate — це цифровий документ, випущений Apple Developer Portal для підпису коду застосунків під iOS, iPadOS, macOS, tvOS та watchOS. За даними Apple Developer Support, 2026, сертифікати є частиною інфраструктури відкритих ключів (PKI) та необхідні для підтвердження особи розробника. У статті розберемо типи сертифікатів, процес їх створення та управління.

Головне

  • Apple Certificate — цифровий сертифікат, що засвідчує особу розробника при підписі коду
  • Development сертифікат дозволяє запускати застосунки на фізичних пристроях у процесі розробки
  • Distribution сертифікат необхідний для публікації в App Store або Ad Hoc розповсюдження
  • Push Notification сертифікати використовуються для підпису з'єднання з APNs та доставки сповіщень
  • Закритий ключ сертифіката зберігається в Keychain розробника і не повинен передаватися третім особам

Що таке Apple Certificate

Apple Certificate — це криптографічний сертифікат формату X.509, випущений центром сертифікації Apple (Apple Certificate Authority). Він підтверджує, що його власник є зареєстрованим учасником Apple Developer Program та має право підписувати застосунки для екосистеми Apple. Сертифікат складається з відкритого ключа, метаданих власника та цифрового підпису Apple CA — будь-хто може перевірити справжність сертифіката, використовуючи кореневий сертифікат Apple, вбудований в операційну систему.

Архітектура PKI Apple включає три рівні: кореневий сертифікат Apple (Apple Root CA), проміжний сертифікат (Apple Worldwide Developer Relations CA) та сертифікат розробника. Apple Worldwide Developer Relations CA підписує всі сертифікати розробників — якщо цей проміжний сертифікат відсутній у ланцюжку довіри, підпис коду вважається недійсним. Кореневі сертифікати Apple оновлюються автоматично через механізм Apple Trust Store, вбудований в iOS та macOS.

Кожен сертифікат має термін дії — від одного до трьох років, залежно від типу. Apple Developer Program автоматично повідомляє розробника за 30 днів до закінчення сертифіката через email та push-повідомлення. Після закінчення терміну старий сертифікат не можна використовувати для підпису нових збірок — потрібно випустити новий, при цьому застосунки, підписані сертифікатом зі скінченим терміном, продовжують працювати на пристроях користувачів.

Ланцюжок довіри Apple

Ланцюжок довіри гарантує, що сертифікат розробника дійсно випущений Apple. iOS перевіряє: кореневий сертифікат Apple Root CA (вбудований у прошивку), проміжний сертифікат Apple Worldwide Developer Relations CA, сертифікат розробника. Якщо будь-який з елементів ланцюжка відсутній або недійсний, iOS блокує запуск застосунку з помилкою code signing. macOS надає утиліту security для перевірки ланцюжка довіри будь-якого сертифіката у зв'язці ключів.

Як працюють сертифікати Apple

Процес підпису коду з використанням Apple Certificate заснований на асиметричній криптографії. Закритий ключ (private key) зберігається на комп'ютері розробника в Keychain, а відкритий ключ (public key) включається в сертифікат і надсилається до Apple Developer Portal. Коли Xcode підписує застосунок, він створює дайджест (хеш) бінарного файлу та шифрує його закритим ключем — це цифровий підпис. Пристрій розшифровує підпис відкритим ключем із сертифіката та порівнює з обчисленим хешем.

Apple використовує алгоритм ECDSA (Elliptic Curve Digital Signature Algorithm) з кривою P-256 для всіх сертифікатів, випущених після 2021 року. Раніше використовувався RSA-2048. Перехід на ECDSA підвищив швидкість перевірки підпису на пристроях і зменшив розмір підпису — для мобільних застосунків це особливо важливо, оскільки перевірка підпису виконується при кожному запуску. За даними Apple Security Engineering (2025), ECDSA P-256 забезпечує еквівалентний RSA-2048 рівень безпеки при значно менших обчислювальних витратах.

Для CI/CD-процесів сертифікат разом із закритим ключем необхідно експортувати в PKCS12 (.p12) та зберігати в захищеному сховищі. GitHub Actions, Bitrise, Jenkins та інші CI-системи підтримують імпорт сертифікатів через змінні середовища або секрети. Після імпорту на CI-агент сертифікат тимчасово додається до зв'язки ключів, використовується для підпису та видаляється. Fastlane Match автоматизує цей процес, синхронізуючи сертифікати між розробниками через зашифрований git-репозиторій.

Різниця між Development та Distribution сертифікатами

Development сертифікат дозволяє підписувати застосунки для запуску на фізичних пристроях розробника. Для його отримання достатньо безкоштовного облікового запису Apple ID — Xcode може згенерувати Development сертифікат автоматично. Distribution сертифікат випускається тільки для платних облікових записів Apple Developer Program ($99/рік) і потрібен для відправки застосунку до App Store, Ad Hoc розповсюдження або Enterprise-дистрибуції. Один обліковий запис може мати кілька Distribution сертифікатів — наприклад, окремий для кожного застосунку або для різних команд.

Типи Apple Certificate

Apple Developer Portal надає кілька типів сертифікатів, кожен з яких призначений для певної задачі. iOS App Development — базовий сертифікат для підпису застосунків на етапі розробки. Apple Distribution — основний сертифікат для публікації в App Store. Mac Development та Mac Distribution — аналоги для macOS-застосунків. Для кожного типу сертифіката існує окремий запит (CSR) в Apple Developer Portal.

Окрему категорію становлять сертифікати для push-сповіщень. Apple Push Notification service (APNs) потребує або окремого SSL-сертифіката, або використання токенів автентифікації (APNs Auth Key). SSL-сертифікати APNs випускаються окремо для Development (Sandbox) та Production середовищ і прив'язуються до конкретного App ID. APNs Auth Key — більш сучасний підхід: один ключ (.p8) обслуговує всі застосунки облікового запису, що спрощує управління.

Тип сертифікатаПризначенняТермін дії
iOS App DevelopmentПідпис для тестування на пристроях1 рік
Apple DistributionПублікація в App Store та Ad Hoc1 рік
Mac DevelopmentПідпис macOS-застосунків для розробки1 рік
Mac DistributionПублікація в Mac App Store1 рік
APNs SSL (Sandbox)Push-сповіщення в тестовому середовищі1-3 роки
APNs SSL (Production)Push-сповіщення в продакшені1-3 роки

Створення та управління сертифікатами

Створення Apple Certificate починається з генерації запиту на сертифікат (Certificate Signing Request, CSR) через Keychain Access на macOS. Keychain Access створює пару ключів: закритий ключ залишається у зв'язці, а CSR надсилається до Apple Developer Portal. Після верифікації особи Apple підписує CSR та видає готовий сертифікат (.cer), який потрібно завантажити та встановити подвійним кліком.

Для управління кількома проектами та командами Apple надає можливість створювати сертифікати для різних Team ID. Один розробник може бути учасником кількох команд (через Apple Developer Program — App Store Connect), і для кожної команди випускаються окремі сертифікати. Xcode автоматично перемикає сертифікати залежно від вибраної команди в налаштуваннях Signing & Capabilities.

Ревокація (відкликання) сертифіката — критична операція: всі застосунки, підписані цим сертифікатом, перестають встановлюватися на нові пристрої (вже встановлені продовжують працювати). Apple Developer Portal дозволяє відкликати будь-який сертифікат у розділі Certificates. Причини ревокації: компрометація закритого ключа, звільнення розробника з команди, порушення умов Apple Developer Program. Після ревокації необхідно випустити новий сертифікат та перепідписати всі активні збірки.

Keychain та експорт сертифікатів

Keychain (зв'язка ключів) — системне сховище macOS для сертифікатів, закритих ключів та паролів. Всі сертифікати Apple та відповідні закриті ключі зберігаються у зв'язці входу (login.keychain) користувача. Xcode звертається до Keychain при підписі коду, автоматично вибираючи відповідний сертифікат за типом збірки. Для діагностики проблем із підписом зручно використовувати вбудовану утиліту Keychain Access (папка /Applications/Utilities).

Експорт сертифіката для CI/CD виконується через Keychain Access: виберіть сертифікат та відповідний закритий ключ (вони повинні бути розгорнуті в одному рядку), натисніть правою кнопкою та виберіть Export. Формат — PKCS12 (.p12). При експорті Keychain запитає пароль для захисту файлу — цей пароль знадобиться при імпорті на CI-сервері. Без закритого ключа експортований сертифікат некорисний для підпису — він може використовуватися тільки для перевірки вже підписаного коду.

Імпорт сертифіката в CI/CD

Приклад команди для імпорту сертифіката у зв'язку ключів CI-агента з використанням утиліти security:

bash
# Створення тимчасової зв'язки ключів
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain

# Імпорт сертифіката з .p12
security import certificate.p12 -k build.keychain \
  -P "${P12_PASSWORD}" -T /usr/bin/codesign

# Налаштування політики підпису
security set-key-partition-list -S apple: -s \
  -k "temp" build.keychain

Security create-keychain створює тимчасову зв'язку ключів, ізольовану від користувацької. Це важливо для CI, щоб не забруднювати системну зв'язку ключів агента. Прапорець -T /usr/bin/codesign дозволяє утиліті codesign доступ до ключів без запиту пароля — інакше автоматичний підпис у пайплайні перерветься діалогом. Команда set-key-partition-list необхідна для сумісності з вимогами macOS до підпису коду в автоматичному режимі.

Проблеми з сертифікатами та їх вирішення

Найпоширеніша помилка — “No signing certificate found” при збірці в Xcode. Виникає, коли в Keychain відсутній сертифікат із закритим ключем, що відповідає вибраному типу збірки. Рішення: перевірити Keychain Access на наявність сертифіката, завантажити його з Apple Developer Portal та встановити. Якщо закритий ключ втрачено (старий комп'ютер, переустановка системи), необхідно відкликати старий сертифікат та випустити новий.

Помилка “Valid signing certificate not found” в CI/CD виникає, якщо на агенті не встановлені проміжні сертифікати Apple (Apple Worldwide Developer Relations CA). Apple включає проміжні сертифікати в ланцюжок при завантаженні сертифіката розробника, але при ручному експорті .p12 вони можуть бути відсутні. Рішення — завантажити проміжні сертифікати з сайту Apple Certificate Authority та встановити їх у зв'язку ключів CI-агента.

Проблема з сертифікатом із скінченим терміном проявляється помилкою “This certificate has an invalid issuer” при підписі. Apple Developer Portal показує статус кожного сертифіката та дату закінчення терміну. Якщо застосунок вже опубліковано в App Store із сертифікатом із скінченим терміном, він продовжує працювати — App Store використовує власний сертифікат Apple для розповсюдження. Однак для завантаження нової збірки знадобиться діючий Distribution сертифікат. Fastlane включає команду cert для автоматичного створення та оновлення сертифікатів.

Часті запитання

Чи можна використовувати один Apple Certificate для iOS та macOS застосунків?

Ні, для iOS та macOS випускаються різні типи сертифікатів — iOS App Development та Mac Development. Apple Distribution сертифікат також розділений за платформами. При створенні сертифіката в Apple Developer Portal необхідно вказати цільову платформу — універсального сертифіката для всіх платформ не існує.

Що робити, якщо закритий ключ сертифіката втрачено?

Необхідно відкликати старий сертифікат в Apple Developer Portal через Certificates, Identifiers & Profiles. Потім створити новий CSR через Keychain Access та випустити новий сертифікат. Всі застосунки, підписані старим сертифікатом, потребуватимуть перепідписання та повторного завантаження в App Store, якщо потрібно випустити оновлення.

Скільки сертифікатів може бути в одному Apple Developer обліковому записі?

Для одного облікового запису Apple Developer Program допускається не більше двох Distribution сертифікатів та необмеженої кількості Development сертифікатів одночасно. Enterprise облікові записи мають окремі ліміти. Якщо досягнуто ліміту Distribution сертифікатів, необхідно відкликати один із існуючих перед створенням нового.

Як перевірити термін дії сертифіката з командного рядка?

Використовуйте утиліту security: security find-identity -v -p basic перелічить всі сертифікати у зв'язці ключів з датами закінчення терміну. Для конкретного сертифіката вкажіть його SHA-1 хеш: security find-certificate -c “Developer” -p | openssl x509 -noout -enddate.

Чи впливає зміна облікового запису Apple ID на існуючі сертифікати?

Так, сертифікати прив'язані до конкретного облікового запису Apple Developer (Team ID). При зміні облікового запису старі сертифікати стають недійсними для нового Team ID. Xcode при зміні облікового запису в Accounts Preferences автоматично запитує створення нових сертифікатів для нової команди.

Підсумки

  • Apple Certificate — цифровий сертифікат X.509, випущений Apple CA для підтвердження особи розробника при підписі коду
  • Development сертифікат дозволяє запускати застосунки на фізичних пристроях без публікації в App Store
  • Distribution сертифікат потрібен для завантаження застосунку в App Store та Ad Hoc розповсюдження
  • APNs сертифікати або токени необхідні для доставки push-сповіщень через сервери Apple
  • Закритий ключ зберігається в Keychain розробника і не може бути відновлений при втраті — потрібне відкликання сертифіката
  • PKCS12 експорт використовується для передачі сертифіката між комп'ютерами та в CI/CD-системи
  • Ланцюжок довіри Apple включає кореневий, проміжний та сертифікат розробника — порушення будь-якої ланки блокує підпис

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також