Apple Certificate este un document digital emis de Apple Developer Portal pentru semnarea codului aplicațiilor pentru iOS, iPadOS, macOS, tvOS și watchOS. Potrivit Apple Developer Support, 2026, certificatele fac parte din infrastructura cu cheie publică (PKI) și sunt necesare pentru confirmarea identității dezvoltatorului. În articol vom analiza tipurile de certificate, procesul de creare și gestionare a acestora.
Principalele puncte
Apple Certificate este un certificat criptografic în format X.509 emis de autoritatea de certificare Apple (Apple Certificate Authority). Acesta confirmă că proprietarul său este un membru înregistrat al Apple Developer Program și are dreptul de a semna aplicații pentru ecosistemul Apple. Certificatul constă dintr-o cheie publică, metadatele proprietarului și o semnătură digitală Apple CA — oricine poate verifica autenticitatea certificatului folosind certificatul rădăcină Apple încorporat în sistemul de operare.
Arhitectura PKI Apple cuprinde trei niveluri: certificatul rădăcină Apple (Apple Root CA), certificatul intermediar (Apple Worldwide Developer Relations CA) și certificatul dezvoltatorului. Apple Worldwide Developer Relations CA semnează toate certificatele dezvoltatorilor — dacă acest certificat intermediar lipsește din lanțul de încredere, semnătura codului este considerată nevalidă. Certificatele rădăcină Apple se actualizează automat prin mecanismul Apple Trust Store încorporat în iOS și macOS.
Fiecare certificat are o perioadă de valabilitate — de la un an la trei ani, în funcție de tip. Apple Developer Program notifică automat dezvoltatorul cu 30 de zile înainte de expirarea certificatului prin e-mail și notificări push. După expirare, certificatul vechi nu mai poate fi utilizat pentru semnarea noilor build-uri — trebuie emis unul nou, însă aplicațiile semnate cu certificatul expirat continuă să funcționeze pe dispozitivele utilizatorilor.
Lanțul de încredere garantează că certificatul dezvoltatorului a fost într-adevăr emis de Apple. iOS verifică: certificatul rădăcină Apple Root CA (încorporat în firmware), certificatul intermediar Apple Worldwide Developer Relations CA, certificatul dezvoltatorului. Dacă orice element al lanțului lipsește sau este nevalid, iOS blochează pornirea aplicației cu eroarea code signing. macOS oferă utilitarul security pentru verificarea lanțului de încredere al oricărui certificat din Keychain.
Procesul de semnare a codului folosind Apple Certificate se bazează pe criptografia asimetrică. Cheia privată (private key) este stocată pe computerul dezvoltatorului în Keychain, iar cheia publică (public key) este inclusă în certificat și trimisă la Apple Developer Portal. Când Xcode semnează o aplicație, creează un rezumat (hash) al fișierului binar și îl criptează cu cheia privată — aceasta este semnătura digitală. Dispozitivul decriptează semnătura cu cheia publică din certificat și o compară cu hash-ul calculat.
Apple utilizează algoritmul ECDSA (Elliptic Curve Digital Signature Algorithm) cu curba P-256 pentru toate certificatele emise după 2021. Anterior se folosea RSA-2048. Tranziția la ECDSA a crescut viteza de verificare a semnăturii pe dispozitive și a redus dimensiunea semnăturii — pentru aplicațiile mobile acest lucru este deosebit de important, deoarece verificarea semnăturii se efectuează la fiecare pornire. Potrivit Apple Security Engineering (2025), ECDSA P-256 asigură un nivel de securitate echivalent cu RSA-2048 la costuri de calcul semnificativ mai mici.
Pentru procesele CI/CD, certificatul împreună cu cheia privată trebuie exportat în PKCS12 (.p12) și stocat într-un depozit securizat. GitHub Actions, Bitrise, Jenkins și alte sisteme CI acceptă importul certificatelor prin variabile de mediu sau secrete. După importarea pe agentul CI, certificatul este adăugat temporar în Keychain, utilizat pentru semnare și eliminat. Fastlane Match automatizează acest proces, sincronizând certificatele între dezvoltatori printr-un depozit git criptat.
Development certificatul permite semnarea aplicațiilor pentru rularea pe dispozitivele fizice ale dezvoltatorului. Pentru obținerea lui este suficient un cont gratuit Apple ID — Xcode poate genera automat un certificat Development. Distribution certificatul este emis doar pentru conturile plătite Apple Developer Program ($99/an) și este necesar pentru trimiterea aplicației în App Store, distribuția Ad Hoc sau Enterprise. Un cont poate avea mai multe certificate Distribution — de exemplu, separate pentru fiecare aplicație sau pentru diferite echipe.
Apple Developer Portal oferă mai multe tipuri de certificate, fiecare destinat unei sarcini specifice. iOS App Development — certificat de bază pentru semnarea aplicațiilor în faza de dezvoltare. Apple Distribution — certificat principal pentru publicarea în App Store. Mac Development și Mac Distribution — analogii pentru aplicațiile macOS. Pentru fiecare tip de certificat există o cerere separată (CSR) în Apple Developer Portal.
O categorie separată o constituie certificatele pentru notificări push. Apple Push Notification service (APNs) necesită fie un certificat SSL separat, fie utilizarea tokenurilor de autentificare (APNs Auth Key). Certificatele SSL APNs sunt emise separat pentru mediile Development (Sandbox) și Production și sunt legate de un anumit App ID. APNs Auth Key — o abordare mai modernă: o singură cheie (.p8) deservește toate aplicațiile contului, simplificând gestionarea.
| Tip certificat | Destinație | Perioadă de valabilitate |
|---|---|---|
| iOS App Development | Semnare pentru testare pe dispozitive | 1 an |
| Apple Distribution | Publicare în App Store și Ad Hoc | 1 an |
| Mac Development | Semnare aplicații macOS pentru dezvoltare | 1 an |
| Mac Distribution | Publicare în Mac App Store | 1 an |
| APNs SSL (Sandbox) | Notificări push în mediu de test | 1-3 ani |
| APNs SSL (Production) | Notificări push în producție | 1-3 ani |
Crearea unui Apple Certificate începe cu generarea unei cereri de semnare a certificatului (Certificate Signing Request, CSR) prin Keychain Access pe macOS. Keychain Access creează o pereche de chei: cheia privată rămâne în Keychain, iar CSR este trimis la Apple Developer Portal. După verificarea identității, Apple semnează CSR și emite certificatul gata (.cer), care trebuie descărcat și instalat printr-un dublu-clic.
Pentru gestionarea mai multor proiecte și echipe, Apple oferă posibilitatea de a crea certificate pentru diferite Team ID-uri. Un dezvoltator poate fi membru al mai multor echipe (prin Apple Developer Program — App Store Connect), iar pentru fiecare echipă sunt emise certificate separate. Xcode comută automat certificatele în funcție de echipa selectată în setările Signing & Capabilities.
Revocarea certificatului este o operațiune critică: toate aplicațiile semnate cu acest certificat nu se mai instalează pe dispozitive noi (cele deja instalate continuă să funcționeze). Apple Developer Portal permite revocarea oricărui certificat în secțiunea Certificates. Motive de revocare: compromiterea cheii private, plecarea dezvoltatorului din echipă, încălcarea termenilor Apple Developer Program. După revocare, trebuie emis un certificat nou și resignate toate build-urile active.
Keychain este depozitul sistemic macOS pentru certificate, chei private și parole. Toate certificatele Apple și cheile private corespunzătoare sunt stocate în Keychain-ul de conectare (login.keychain) al utilizatorului. Xcode accesează Keychain la semnarea codului, selectând automat certificatul potrivit în funcție de tipul de build. Pentru diagnosticarea problemelor cu semnarea este convenabil să folosiți utilitarul încorporat Keychain Access (folder /Applications/Utilities).
Exportul certificatului pentru CI/CD se realizează prin Keychain Access: selectați certificatul și cheia privată corespunzătoare (acestea trebuie să fie expandate pe același rând), faceți clic dreapta și alegeți Export. Formatul — PKCS12 (.p12). La export, Keychain va solicita o parolă pentru protejarea fișierului — această parolă va fi necesară la importul pe serverul CI. Fără cheia privată, certificatul exportat este inutil pentru semnare — poate fi folosit doar pentru verificarea codului deja semnat.
Exemplu de comandă pentru importul certificatului în Keychain-ul agentului CI folosind utilitarul security:
# Crearea unui Keychain temporar
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain
# Importul certificatului din .p12
security import certificate.p12 -k build.keychain \
-P "${P12_PASSWORD}" -T /usr/bin/codesign
# Configurarea politicii de semnare
security set-key-partition-list -S apple: -s \
-k "temp" build.keychain
Security create-keychain creează un Keychain temporar, izolat de cel al utilizatorului. Acest lucru este important pentru CI, pentru a nu polua Keychain-ul de sistem al agentului. Flag-ul -T /usr/bin/codesign permite utilitarului codesign accesul la chei fără a solicita parola — altfel semnarea automată în pipeline se va întrerupe cu un dialog. Comanda set-key-partition-list este necesară pentru compatibilitatea cu cerințele macOS pentru semnarea codului în mod automat.
Cea mai frecventă eroare — „No signing certificate found” la compilarea în Xcode. Apare când în Keychain lipsește un certificat cu cheia privată corespunzătoare tipului de build selectat. Soluție: verificați Keychain Access pentru prezența certificatului, descărcați-l din Apple Developer Portal și instalați-l. Dacă cheia privată a fost pierdută (computer vechi, reinstalare sistem), trebuie să revocați certificatul vechi și să emiteți unul nou.
Eroarea „Valid signing certificate not found” în CI/CD apare când pe agent nu sunt instalate certificatele intermediare Apple (Apple Worldwide Developer Relations CA). Apple include certificatele intermediare în lanț la descărcarea certificatului de dezvoltator, dar la exportul manual .p12 este posibil să lipsească. Soluție — descărcați certificatele intermediare de pe site-ul Apple Certificate Authority și instalați-le în Keychain-ul agentului CI.
Problema cu certificatul expirat se manifestă prin eroarea „This certificate has an invalid issuer” la semnare. Apple Developer Portal arată statusul fiecărui certificat și data expirării. Dacă aplicația a fost deja publicată în App Store cu un certificat expirat, ea continuă să funcționeze — App Store folosește propriul certificat Apple pentru distribuție. Cu toate acestea, pentru încărcarea unui nou build este necesar un certificat Distribution valabil. Fastlane include comanda cert pentru crearea și reînnoirea automată a certificatelor.
Întrebări frecvente
Nu, pentru iOS și macOS se emit tipuri diferite de certificate — iOS App Development și Mac Development. Apple Distribution certificatul este de asemenea împărțit pe platforme. La crearea certificatului în Apple Developer Portal trebuie să specificați platforma țintă — un certificat universal pentru toate platformele nu există.
Trebuie să revocați certificatul vechi în Apple Developer Portal prin Certificates, Identifiers & Profiles. Apoi creați un nou CSR prin Keychain Access și emiteți un certificat nou. Toate aplicațiile semnate cu certificatul vechi vor necesita resignare și reîncărcare în App Store, dacă trebuie să publicați o actualizare.
Pentru un cont Apple Developer Program sunt permise maximum două certificate Distribution și un număr nelimitat de certificate Development simultan. Enterprise conturile au limite separate. Dacă ați atins limita certificatelor Distribution, trebuie să revocați unul dintre cele existente înainte de a crea unul nou.
Folosiți utilitarul security: security find-identity -v -p basic va lista toate certificatele din Keychain cu datele de expirare. Pentru un certificat specific, indicați hash-ul său SHA-1: security find-certificate -c „Developer” -p | openssl x509 -noout -enddate.
Da, certificatele sunt legate de un anumit cont Apple Developer (Team ID). La schimbarea contului, certificatele vechi devin nevalabile pentru noul Team ID. Xcode la schimbarea contului în Accounts Preferences solicită automat crearea de noi certificate pentru noua echipă.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și