Apple Certificate — co to je, jaké jsou typy a jak funguje

Autor: IT Sectr Publikováno: 2026-04-16 Doba čtení: 9 min

Apple Certificate je digitální dokument vydaný Apple Developer Portal pro podepisování kódu aplikací pro iOS, iPadOS, macOS, tvOS a watchOS. Podle Apple Developer Support, 2026 jsou certifikáty součástí infrastruktury veřejného klíče (PKI) a jsou nezbytné pro potvrzení identity vývojáře. V článku se podíváme na typy certifikátů, proces jejich vytváření a správy.

Hlavní body

  • Apple Certificate — digitální certifikát potvrzující identitu vývojáře při podepisování kódu
  • Development certifikát umožňuje spouštět aplikace na fyzických zařízeních během vývoje
  • Distribution certifikát je nezbytný pro publikování v App Store nebo distribuci Ad Hoc
  • Push Notification certifikáty se používají k podepsání připojení k APNs a doručování oznámení
  • Soukromý klíč certifikátu je uložen v Keychain vývojáře a nesmí být předán třetím stranám

Co je Apple Certificate

Apple Certificate je kryptografický certifikát ve formátu X.509 vydaný certifikační autoritou Apple (Apple Certificate Authority). Potvrzuje, že jeho vlastník je registrovaným členem Apple Developer Program a má právo podepisovat aplikace pro ekosystém Apple. Certifikát se skládá z veřejného klíče, metadat vlastníka a digitálního podpisu Apple CA — kdokoli může ověřit pravost certifikátu pomocí kořenového certifikátu Apple vestavěného v operačním systému.

Architektura PKI Apple zahrnuje tři úrovně: kořenový certifikát Apple (Apple Root CA), zprostředkující certifikát (Apple Worldwide Developer Relations CA) a vývojářský certifikát. Apple Worldwide Developer Relations CA podepisuje všechny vývojářské certifikáty — pokud tento zprostředkující certifikát chybí v řetězci důvěry, je podpis kódu považován za neplatný. Kořenové certifikáty Apple se automaticky aktualizují prostřednictvím mechanismu Apple Trust Store vestavěného v iOS a macOS.

Každý certifikát má dobu platnosti — od jednoho do tří let, v závislosti na typu. Apple Developer Program automaticky upozorňuje vývojáře 30 dní před vypršením certifikátu e-mailem a push oznámeními. Po vypršení nelze starý certifikát použít k podepisování nových buildů — je třeba vydat nový, ale aplikace podepsané prošlým certifikátem nadále fungují na zařízeních uživatelů.

Řetězec důvěry Apple

Řetězec důvěry zaručuje, že vývojářský certifikát byl skutečně vydán společností Apple. iOS kontroluje: kořenový certifikát Apple Root CA (vestavěný ve firmwaru), zprostředkující certifikát Apple Worldwide Developer Relations CA, vývojářský certifikát. Pokud některý prvek řetězce chybí nebo je neplatný, iOS blokuje spuštění aplikace s chybou code signing. macOS poskytuje nástroj security pro kontrolu řetězce důvěry libovolného certifikátu v klíčence.

Jak fungují certifikáty Apple

Proces podepisování kódu pomocí Apple Certificate je založen na asymetrické kryptografii. Soukromý klíč (private key) je uložen v počítači vývojáře v Keychain, zatímco veřejný klíč (public key) je součástí certifikátu a je odeslán do Apple Developer Portal. Když Xcode podepisuje aplikaci, vytvoří hash binárního souboru a zašifruje jej soukromým klíčem — to je digitální podpis. Zařízení dešifruje podpis veřejným klíčem z certifikátu a porovná jej s vypočteným hashem.

Apple používá algoritmus ECDSA (Elliptic Curve Digital Signature Algorithm) s křivkou P-256 pro všechny certifikáty vydané po roce 2021. Dříve se používal RSA-2048. Přechod na ECDSA zvýšil rychlost ověřování podpisu na zařízeních a zmenšil velikost podpisu — pro mobilní aplikace je to obzvláště důležité, protože ověřování podpisu probíhá při každém spuštění. Podle Apple Security Engineering (2025) poskytuje ECDSA P-256 ekvivalentní úroveň zabezpečení jako RSA-2048 s výrazně nižšími výpočetními náklady.

Pro procesy CI/CD musí být certifikát spolu se soukromým klíčem exportován do PKCS12 (.p12) a uložen v chráněném úložišti. GitHub Actions, Bitrise, Jenkins a další CI systémy podporují import certifikátů prostřednictvím proměnných prostředí nebo tajemství. Po importu na CI agenta je certifikát dočasně přidán do klíčenky, použit k podpisu a odstraněn. Fastlane Match tento proces automatizuje synchronizací certifikátů mezi vývojáři prostřednictvím šifrovaného git repozitáře.

Rozdíl mezi certifikáty Development a Distribution

Development certifikát umožňuje podepisovat aplikace pro spouštění na fyzických zařízeních vývojáře. K jeho získání stačí bezplatný účet Apple ID — Xcode může automaticky vygenerovat Development certifikát. Distribution certifikát je vydáván pouze pro placené účty Apple Developer Program ($99/rok) a je vyžadován pro odeslání aplikace do App Store, distribuci Ad Hoc nebo Enterprise. Jeden účet může mít několik Distribution certifikátů — například samostatné pro každou aplikaci nebo pro různé týmy.

Typy Apple Certificate

Apple Developer Portal poskytuje několik typů certifikátů, z nichž každý je určen pro konkrétní úkol. iOS App Development — základní certifikát pro podepisování aplikací ve fázi vývoje. Apple Distribution — hlavní certifikát pro publikování v App Store. Mac Development a Mac Distribution — obdobné pro aplikace macOS. Pro každý typ certifikátu existuje samostatná žádost (CSR) v Apple Developer Portal.

Samostatnou kategorii tvoří certifikáty pro push oznámení. Apple Push Notification service (APNs) vyžaduje buď samostatný SSL certifikát, nebo použití autentizačních tokenů (APNs Auth Key). SSL certifikáty APNs jsou vydávány samostatně pro prostředí Development (Sandbox) a Production a jsou vázány na konkrétní App ID. APNs Auth Key — modernější přístup: jeden klíč (.p8) obsluhuje všechny aplikace účtu, což zjednodušuje správu.

Typ certifikátuÚčelDoba platnosti
iOS App DevelopmentPodpis pro testování na zařízeních1 rok
Apple DistributionPublikování v App Store a Ad Hoc1 rok
Mac DevelopmentPodpis macOS aplikací pro vývoj1 rok
Mac DistributionPublikování v Mac App Store1 rok
APNs SSL (Sandbox)Push oznámení v testovacím prostředí1-3 roky
APNs SSL (Production)Push oznámení v produkci1-3 roky

Vytváření a správa certifikátů

Vytvoření Apple Certificate začíná vygenerováním žádosti o podpis certifikátu (Certificate Signing Request, CSR) prostřednictvím Keychain Access v macOS. Keychain Access vytvoří pár klíčů: soukromý klíč zůstává v klíčence a CSR je odeslána do Apple Developer Portal. Po ověření totožnosti Apple podepíše CSR a vydá hotový certifikát (.cer), který je třeba stáhnout a nainstalovat dvojitým kliknutím.

Pro správu více projektů a týmů Apple umožňuje vytvářet certifikáty pro různá Team ID. Jeden vývojář může být členem několika týmů (prostřednictvím Apple Developer Program — App Store Connect) a pro každý tým jsou vydávány samostatné certifikáty. Xcode automaticky přepíná certifikáty v závislosti na vybraném týmu v nastavení Signing & Capabilities.

Odvolání (revokace) certifikátu je kritická operace: všechny aplikace podepsané tímto certifikátem se přestanou instalovat na nová zařízení (již nainstalované nadále fungují). Apple Developer Portal umožňuje odvolat libovolný certifikát v sekci Certificates. Důvody odvolání: kompromitace soukromého klíče, odchod vývojáře z týmu, porušení podmínek Apple Developer Program. Po odvolání je třeba vydat nový certifikát a znovu podepsat všechny aktivní buildy.

Keychain a export certifikátů

Keychain (klíčenka) — systémové úložiště macOS pro certifikáty, soukromé klíče a hesla. Všechny certifikáty Apple a odpovídající soukromé klíče jsou uloženy v přihlašovací klíčence (login.keychain) uživatele. Xcode přistupuje do Keychain při podepisování kódu a automaticky vybírá vhodný certifikát podle typu buildu. Pro diagnostiku problémů s podepisováním použijte vestavěný nástroj Keychain Access (složka /Applications/Utilities).

Export certifikátu pro CI/CD se provádí přes Keychain Access: vyberte certifikát a odpovídající soukromý klíč (měly by být rozbaleny v jednom řádku), klikněte pravým tlačítkem a zvolte Export. Formát — PKCS12 (.p12). Při exportu Keychain vyžádá heslo pro ochranu souboru — toto heslo bude potřeba při importu na CI serveru. Bez soukromého klíče je exportovaný certifikát pro podepisování nepoužitelný — lze jej použít pouze pro ověření již podepsaného kódu.

Import certifikátu v CI/CD

Příklad příkazu pro import certifikátu do klíčenky CI agenta pomocí nástroje security:

bash
# Vytvoření dočasné klíčenky
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain

# Import certifikátu z .p12
security import certificate.p12 -k build.keychain \
  -P "${P12_PASSWORD}" -T /usr/bin/codesign

# Konfigurace zásad podepisování
security set-key-partition-list -S apple: -s \
  -k "temp" build.keychain

Security create-keychain vytvoří dočasnou klíčenku izolovanou od uživatelské. To je důležité pro CI, aby se neznečišťovala systémová klíčenka agenta. Přepínač -T /usr/bin/codesign umožňuje nástroji codesign přístup ke klíčům bez vyžádání hesla — jinak by automatické podepisování v pipeline bylo přerušeno dialogem. Příkaz set-key-partition-list je nezbytný pro kompatibilitu s požadavky macOS na podepisování kódu v automatickém režimu.

Problémy s certifikáty a jejich řešení

Nejčastější chyba — „No signing certificate found“ při kompilaci v Xcode. Nastává, když v Keychain chybí certifikát se soukromým klíčem odpovídající vybranému typu buildu. Řešení: zkontrolujte Keychain Access na přítomnost certifikátu, stáhněte jej z Apple Developer Portal a nainstalujte. Pokud je soukromý klíč ztracen (starý počítač, přeinstalace systému), je třeba odvolat starý certifikát a vydat nový.

Chyba „Valid signing certificate not found“ v CI/CD nastává, když na agentovi nejsou nainstalovány zprostředkující certifikáty Apple (Apple Worldwide Developer Relations CA). Apple zahrnuje zprostředkující certifikáty do řetězce při stahování vývojářského certifikátu, ale při ručním exportu .p12 mohou chybět. Řešení — stáhněte zprostředkující certifikáty z webu Apple Certificate Authority a nainstalujte je do klíčenky CI agenta.

Problém s prošlým certifikátem se projevuje chybou „This certificate has an invalid issuer“ při podepisování. Apple Developer Portal zobrazuje stav každého certifikátu a datum vypršení. Pokud byla aplikace již publikována v App Store s prošlým certifikátem, nadále funguje — App Store používá pro distribuci vlastní certifikát Apple. Pro nahrání nového buildu je však vyžadován platný Distribution certifikát. Fastlane obsahuje příkaz cert pro automatické vytváření a obnovování certifikátů.

Často kladené otázky

Lze použít jeden Apple Certificate pro aplikace iOS a macOS?

Ne, pro iOS a macOS jsou vydávány různé typy certifikátů — iOS App Development a Mac Development. Apple Distribution certifikát je také rozdělen podle platforem. Při vytváření certifikátu v Apple Developer Portal je třeba uvést cílovou platformu — univerzální certifikát pro všechny platformy neexistuje.

Co dělat, když je soukromý klíč certifikátu ztracen?

Je třeba odvolat starý certifikát v Apple Developer Portal přes Certificates, Identifiers & Profiles. Poté vytvořte nový CSR přes Keychain Access a vydajte nový certifikát. Všechny aplikace podepsané starým certifikátem budou vyžadovat nové podepsání a opětovné nahrání do App Store, pokud je třeba vydat aktualizaci.

Kolik certifikátů může být v jednom Apple Developer účtu?

Pro jeden účet Apple Developer Program jsou povoleny nejvýše dva Distribution certifikáty a neomezený počet Development certifikátů současně. Enterprise účty mají samostatné limity. Pokud je dosažen limit Distribution certifikátů, je třeba před vytvořením nového odvolat jeden ze stávajících.

Jak zkontrolovat dobu platnosti certifikátu z příkazového řádku?

Použijte nástroj security: security find-identity -v -p basic vypíše všechny certifikáty v klíčence s daty vypršení. Pro konkrétní certifikát uveďte jeho SHA-1 hash: security find-certificate -c „Developer“ -p | openssl x509 -noout -enddate.

Ovlivňuje změna Apple ID účtu stávající certifikáty?

Ano, certifikáty jsou vázány na konkrétní Apple Developer účet (Team ID). Při změně účtu se staré certifikáty stávají neplatnými pro nové Team ID. Xcode při změně účtu v Accounts Preferences automaticky vyžaduje vytvoření nových certifikátů pro nový tým.

Shrnutí

  • Apple Certificate — digitální certifikát X.509 vydaný Apple CA pro potvrzení identity vývojáře při podepisování kódu
  • Development certifikát umožňuje spouštět aplikace na fyzických zařízeních bez publikování v App Store
  • Distribution certifikát je vyžadován pro nahrání aplikace do App Store a distribuci Ad Hoc
  • APNs certifikáty nebo tokeny jsou nezbytné pro doručování push oznámení prostřednictvím serverů Apple
  • Soukromý klíč je uložen v Keychain vývojáře a při ztrátě nelze obnovit — vyžaduje odvolání certifikátu
  • PKCS12 export se používá pro přenos certifikátu mezi počítači a do CI/CD systémů
  • Řetězec důvěry Apple zahrnuje kořenový, zprostředkující a vývojářský certifikát — narušení kteréhokoli článku blokuje podpis

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také