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 дана пре истека сертификата путем е-поште и 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 потписује апликацију, креира сажетак (hash) бинарне датотеке и шифрује га приватним кључем — то је дигитални потпис. Уређај дешифрује потпис јавним кључем из сертификата и упоређује га са израчунатим hash-ем.

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 Store-у1 година
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 приступ кључевима без захтева за лозинку — у супротном ће се аутоматско потписивање у pipeline-у прекинути дијалогом. Наредба 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 hash: 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. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође