Apple Certificate is een digitaal document dat is uitgegeven door Apple Developer Portal voor het ondertekenen van applicatiecode voor iOS, iPadOS, macOS, tvOS en watchOS. Volgens Apple Developer Support, 2026 maken certificaten deel uit van de openbare-sleutelinfrastructuur (PKI) en zijn ze nodig om de identiteit van de ontwikkelaar te bevestigen. In het artikel bespreken we de soorten certificaten, het proces van het maken en beheren ervan.
Belangrijkste punten
Apple Certificate is een cryptografisch certificaat in X.509-formaat dat is uitgegeven door de certificeringsinstantie van Apple (Apple Certificate Authority). Het bevestigt dat de eigenaar een geregistreerd lid is van het Apple Developer Program en het recht heeft om apps voor het Apple-ecosysteem te ondertekenen. Het certificaat bestaat uit een openbare sleutel, metadata van de eigenaar en een digitale handtekening van Apple CA — iedereen kan de authenticiteit van het certificaat verifiëren met behulp van het rootcertificaat van Apple dat in het besturingssysteem is ingebouwd.
De PKI-architectuur van Apple omvat drie niveaus: het rootcertificaat van Apple (Apple Root CA), het tussenliggende certificaat (Apple Worldwide Developer Relations CA) en het ontwikkelaarcertificaat. Apple Worldwide Developer Relations CA ondertekent alle ontwikkelaarcertificaten — als dit tussenliggende certificaat ontbreekt in de vertrouwensketen, wordt de codehandtekening als ongeldig beschouwd. De rootcertificaten van Apple worden automatisch bijgewerkt via het Apple Trust Store-mechanisme dat in iOS en macOS is ingebouwd.
Elk certificaat heeft een geldigheidsduur — van één tot drie jaar, afhankelijk van het type. Apple Developer Program stelt de ontwikkelaar automatisch 30 dagen voor het verlopen van het certificaat op de hoogte via e-mail en pushmeldingen. Na het verlopen kan het oude certificaat niet meer worden gebruikt om nieuwe builds te ondertekenen — er moet een nieuwe worden uitgegeven, maar apps die met het verlopen certificaat zijn ondertekend, blijven werken op de apparaten van gebruikers.
De vertrouwensketen garandeert dat het ontwikkelaarcertificaat daadwerkelijk door Apple is uitgegeven. iOS controleert: het rootcertificaat Apple Root CA (ingebouwd in de firmware), het tussenliggende certificaat Apple Worldwide Developer Relations CA, het ontwikkelaarcertificaat. Als een element van de keten ontbreekt of ongeldig is, blokkeert iOS het starten van de app met een code signing-fout. macOS biedt het hulpprogramma security om de vertrouwensketen van elk certificaat in de sleutelhanger te controleren.
Het proces van code-ondertekening met Apple Certificate is gebaseerd op asymmetrische cryptografie. De privésleutel (private key) wordt op de computer van de ontwikkelaar in de Keychain bewaard, terwijl de openbare sleutel (public key) in het certificaat wordt opgenomen en naar Apple Developer Portal wordt gestuurd. Wanneer Xcode een app ondertekent, wordt een hash van het binaire bestand gemaakt en versleuteld met de privésleutel — dit is de digitale handtekening. Het apparaat ontsleutelt de handtekening met de openbare sleutel uit het certificaat en vergelijkt deze met de berekende hash.
Apple gebruikt het ECDSA (Elliptic Curve Digital Signature Algorithm) met curve P-256 voor alle certificaten die na 2021 zijn uitgegeven. Eerder werd RSA-2048 gebruikt. De overgang naar ECDSA heeft de snelheid van handtekeningverificatie op apparaten verhoogd en de grootte van de handtekening verkleind — voor mobiele apps is dit bijzonder belangrijk omdat handtekeningverificatie bij elke start wordt uitgevoerd. Volgens Apple Security Engineering (2025) biedt ECDSA P-256 een gelijkwaardig beveiligingsniveau als RSA-2048 met aanzienlijk lagere rekenkosten.
Voor CI/CD-processen moet het certificaat samen met de privésleutel worden geëxporteerd naar PKCS12 (.p12) en worden opgeslagen in een beveiligde opslag. GitHub Actions, Bitrise, Jenkins en andere CI-systemen ondersteunen het importeren van certificaten via omgevingsvariabelen of geheimen. Na import op de CI-agent wordt het certificaat tijdelijk aan de sleutelhanger toegevoegd, gebruikt voor ondertekening en verwijderd. Fastlane Match automatiseert dit proces door certificaten tussen ontwikkelaars te synchroniseren via een versleutelde git-repository.
Development certificaat maakt het mogelijk apps te ondertekenen voor uitvoering op fysieke apparaten van de ontwikkelaar. Voor het verkrijgen ervan is een gratis Apple ID-account voldoende — Xcode kan automatisch een Development-certificaat genereren. Distribution certificaat wordt alleen uitgegeven voor betaalde Apple Developer Program-accounts ($99/jaar) en is vereist voor het verzenden van apps naar de App Store, Ad Hoc-distributie of Enterprise-distributie. Eén account kan meerdere Distribution-certificaten hebben — bijvoorbeeld apart voor elke app of voor verschillende teams.
Apple Developer Portal biedt verschillende soorten certificaten, elk ontworpen voor een specifieke taak. iOS App Development — basiscertificaat voor het ondertekenen van apps in de ontwikkelingsfase. Apple Distribution — hoofdcertificaat voor publicatie in de App Store. Mac Development en Mac Distribution — tegenhangers voor macOS-apps. Voor elk type certificaat bestaat een apart verzoek (CSR) in Apple Developer Portal.
Een aparte categorie vormen certificaten voor pushmeldingen. Apple Push Notification service (APNs) vereist ofwel een apart SSL-certificaat of het gebruik van authenticatietokens (APNs Auth Key). SSL-certificaten voor APNs worden apart uitgegeven voor Development (Sandbox)- en Production-omgevingen en zijn gekoppeld aan een specifiek App ID. APNs Auth Key — een modernere benadering: één sleutel (.p8) bedient alle apps van het account, wat het beheer vereenvoudigt.
| Type certificaat | Doel | Geldigheidsduur |
|---|---|---|
| iOS App Development | Ondertekening voor testen op apparaten | 1 jaar |
| Apple Distribution | Publicatie in App Store en Ad Hoc | 1 jaar |
| Mac Development | Ondertekening van macOS-apps voor ontwikkeling | 1 jaar |
| Mac Distribution | Publicatie in Mac App Store | 1 jaar |
| APNs SSL (Sandbox) | Pushmeldingen in testomgeving | 1-3 jaar |
| APNs SSL (Production) | Pushmeldingen in productie | 1-3 jaar |
Het maken van een Apple Certificate begint met het genereren van een certificaatondertekeningsverzoek (Certificate Signing Request, CSR) via Keychain Access op macOS. Keychain Access maakt een sleutelpaar: de privésleutel blijft in de sleutelhanger en de CSR wordt naar Apple Developer Portal gestuurd. Na identiteitsverificatie ondertekent Apple de CSR en geeft het voltooide certificaat (.cer) uit, dat moet worden gedownload en geïnstalleerd door erop te dubbelklikken.
Voor het beheren van meerdere projecten en teams biedt Apple de mogelijkheid om certificaten te maken voor verschillende Team ID's. Een ontwikkelaar kan lid zijn van meerdere teams (via Apple Developer Program — App Store Connect) en voor elk team worden aparte certificaten uitgegeven. Xcode schakelt automatisch tussen certificaten op basis van het geselecteerde team in de Signing & Capabilities-instellingen.
Intrekken (revocatie) van een certificaat is een kritieke handeling: alle apps die met dit certificaat zijn ondertekend, kunnen niet meer op nieuwe apparaten worden geïnstalleerd (reeds geïnstalleerde blijven werken). Apple Developer Portal maakt het mogelijk elk certificaat in te trekken in het gedeelte Certificates. Redenen voor intrekking: compromittering van de privésleutel, vertrek van de ontwikkelaar uit het team, schending van de Apple Developer Program-voorwaarden. Na intrekking moet een nieuw certificaat worden uitgegeven en moeten alle actieve builds opnieuw worden ondertekend.
Keychain (sleutelhanger) — de systeemopslag van macOS voor certificaten, privésleutels en wachtwoorden. Alle Apple-certificaten en bijbehorende privésleutels worden bewaard in de aanmeldingssleutelhanger (login.keychain) van de gebruiker. Xcode heeft toegang tot de Keychain bij het ondertekenen van code en selecteert automatisch het juiste certificaat op basis van het buildtype. Voor het diagnosticeren van ondertekeningsproblemen is het handig om het ingebouwde hulpprogramma Keychain Access (map /Applications/Utilities) te gebruiken.
Het exporteren van een certificaat voor CI/CD gebeurt via Keychain Access: selecteer het certificaat en de bijbehorende privésleutel (ze moeten in dezelfde regel zijn uitgevouwen), klik met de rechtermuisknop en kies Export. Formaat — PKCS12 (.p12). Tijdens het exporteren vraagt Keychain om een wachtwoord om het bestand te beveiligen — dit wachtwoord is nodig bij het importeren op de CI-server. Zonder de privésleutel is het geëxporteerde certificaat nutteloos voor ondertekening — het kan alleen worden gebruikt om reeds ondertekende code te verifiëren.
Voorbeeld van een opdracht voor het importeren van een certificaat in de sleutelhanger van een CI-agent met behulp van het hulpprogramma security:
# Tijdelijke sleutelhanger aanmaken
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain
# Certificaat importeren uit .p12
security import certificate.p12 -k build.keychain \
-P "${P12_PASSWORD}" -T /usr/bin/codesign
# Ondertekeningsbeleid configureren
security set-key-partition-list -S apple: -s \
-k "temp" build.keychain
Security create-keychain maakt een tijdelijke, van de gebruiker geïsoleerde sleutelhanger. Dit is belangrijk voor CI om de systeemsleutelhanger van de agent niet te vervuilen. De vlag -T /usr/bin/codesign geeft het hulpprogramma codesign toegang tot de sleutels zonder om een wachtwoord te vragen — anders wordt automatische ondertekening in de pipeline onderbroken door een dialoogvenster. De opdracht set-key-partition-list is nodig voor compatibiliteit met de macOS-vereisten voor code-ondertekening in de automatische modus.
De meest voorkomende fout — „No signing certificate found” bij het compileren in Xcode. Dit gebeurt wanneer in de Keychain een certificaat met de privésleutel ontbreekt dat overeenkomt met het geselecteerde buildtype. Oplossing: controleer Keychain Access op de aanwezigheid van het certificaat, download het uit Apple Developer Portal en installeer het. Als de privésleutel verloren is gegaan (oude computer, herinstallatie van het systeem), moet het oude certificaat worden ingetrokken en een nieuw worden uitgegeven.
De fout „Valid signing certificate not found” in CI/CD treedt op wanneer de tussenliggende Apple-certificaten (Apple Worldwide Developer Relations CA) niet op de agent zijn geïnstalleerd. Apple voegt tussenliggende certificaten toe aan de keten bij het downloaden van het ontwikkelaarcertificaat, maar bij handmatige export van .p12 kunnen ze ontbreken. Oplossing — download de tussenliggende certificaten van de Apple Certificate Authority-website en installeer ze in de sleutelhanger van de CI-agent.
Het probleem met verlopen certificaat manifesteert zich met de fout „This certificate has an invalid issuer” bij het ondertekenen. Apple Developer Portal toont de status van elk certificaat en de vervaldatum. Als de app al in de App Store is gepubliceerd met een verlopen certificaat, blijft deze werken — de App Store gebruikt zijn eigen Apple-certificaat voor distributie. Voor het uploaden van een nieuwe build is echter een geldig Distribution-certificaat vereist. Fastlane bevat de opdracht cert voor het automatisch maken en vernieuwen van certificaten.
Veelgestelde vragen
Nee, voor iOS en macOS worden verschillende soorten certificaten uitgegeven — iOS App Development en Mac Development. Apple Distribution certificaat is ook opgesplitst per platform. Bij het maken van een certificaat in Apple Developer Portal moet u het doelplatform opgeven — een universeel certificaat voor alle platforms bestaat niet.
U moet het oude certificaat in Apple Developer Portal intrekken via Certificates, Identifiers & Profiles. Maak vervolgens een nieuwe CSR via Keychain Access en geef een nieuw certificaat uit. Alle apps die met het oude certificaat zijn ondertekend, moeten opnieuw worden ondertekend en opnieuw worden geüpload naar de App Store als er een update moet worden uitgebracht.
Voor één Apple Developer Program-account zijn maximaal twee Distribution-certificaten en een onbeperkt aantal Development-certificaten tegelijkertijd toegestaan. Enterprise-accounts hebben afzonderlijke limieten. Als de limiet van Distribution-certificaten is bereikt, moet u een van de bestaande certificaten intrekken voordat u een nieuwe maakt.
Gebruik het hulpprogramma security: security find-identity -v -p basic geeft alle certificaten in de sleutelhanger weer met vervaldata. Geef voor een specifiek certificaat de SHA-1-hash op: security find-certificate -c “Developer” -p | openssl x509 -noout -enddate.
Ja, certificaten zijn gekoppeld aan een specifiek Apple Developer-account (Team ID). Bij het wijzigen van account worden oude certificaten ongeldig voor de nieuwe Team ID. Xcode vraagt bij het wijzigen van account in Accounts Preferences automatisch om nieuwe certificaten voor het nieuwe team te maken.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook