Apple Certificate — co to jest, jakie są rodzaje i jak działa

Autor: IT Sectr Opublikowano: 2026-04-16 Czas czytania: 9 min

Apple Certificate to cyfrowy dokument wydany przez Apple Developer Portal do podpisywania kodu aplikacji na iOS, iPadOS, macOS, tvOS i watchOS. Według Apple Developer Support, 2026, certyfikaty są częścią infrastruktury klucza publicznego (PKI) i są niezbędne do potwierdzenia tożsamości dewelopera. W artykule omówimy rodzaje certyfikatów, proces ich tworzenia i zarządzania.

Najważniejsze

  • Apple Certificate — cyfrowy certyfikat potwierdzający tożsamość dewelopera przy podpisywaniu kodu
  • Development certyfikat umożliwia uruchamianie aplikacji na fizycznych urządzeniach podczas tworzenia
  • Distribution certyfikat jest niezbędny do publikacji w App Store lub dystrybucji Ad Hoc
  • Push Notification certyfikaty służą do podpisywania połączenia z APNs i dostarczania powiadomień
  • Klucz prywatny certyfikatu jest przechowywany w Keychain dewelopera i nie powinien być udostępniany osobom trzecim

Co to jest Apple Certificate

Apple Certificate to certyfikat kryptograficzny w formacie X.509 wydany przez centrum certyfikacji Apple (Apple Certificate Authority). Potwierdza on, że jego właściciel jest zarejestrowanym uczestnikiem Apple Developer Program i ma prawo do podpisywania aplikacji dla ekosystemu Apple. Certyfikat składa się z klucza publicznego, metadanych właściciela i podpisu cyfrowego Apple CA — każdy może zweryfikować autentyczność certyfikatu, używając głównego certyfikatu Apple wbudowanego w system operacyjny.

Architektura PKI Apple obejmuje trzy poziomy: główny certyfikat Apple (Apple Root CA), pośredni certyfikat (Apple Worldwide Developer Relations CA) i certyfikat dewelopera. Apple Worldwide Developer Relations CA podpisuje wszystkie certyfikaty deweloperów — jeśli tego pośredniego certyfikatu brakuje w łańcuchu zaufania, podpis kodu jest uznawany za nieważny. Główne certyfikaty Apple są aktualizowane automatycznie przez mechanizm Apple Trust Store wbudowany w iOS i macOS.

Każdy certyfikat ma okres ważności — od jednego roku do trzech lat, w zależności od typu. Apple Developer Program automatycznie powiadamia dewelopera na 30 dni przed wygaśnięciem certyfikatu przez e-mail i powiadomienia push. Po wygaśnięciu stary certyfikat nie może być używany do podpisywania nowych buildów — należy wydać nowy, przy czym aplikacje podpisane wygasłym certyfikatem nadal działają na urządzeniach użytkowników.

Łańcuch zaufania Apple

Łańcuch zaufania gwarantuje, że certyfikat dewelopera został rzeczywiście wydany przez Apple. iOS sprawdza: główny certyfikat Apple Root CA (wbudowany w oprogramowanie), pośredni certyfikat Apple Worldwide Developer Relations CA, certyfikat dewelopera. Jeśli którykolwiek element łańcucha brakuje lub jest nieważny, iOS blokuje uruchomienie aplikacji z błędem code signing. macOS udostępnia narzędzie security do sprawdzania łańcucha zaufania dowolnego certyfikatu w pęku kluczy.

Jak działają certyfikaty Apple

Proces podpisywania kodu przy użyciu Apple Certificate opiera się na kryptografii asymetrycznej. Klucz prywatny (private key) jest przechowywany na komputerze dewelopera w Keychain, a klucz publiczny (public key) jest zawarty w certyfikacie i wysyłany do Apple Developer Portal. Gdy Xcode podpisuje aplikację, tworzy skrót (hash) pliku binarnego i szyfruje go kluczem prywatnym — to jest podpis cyfrowy. Urządzenie odszyfrowuje podpis kluczem publicznym z certyfikatu i porównuje z obliczonym hashem.

Apple używa algorytmu ECDSA (Elliptic Curve Digital Signature Algorithm) z krzywą P-256 dla wszystkich certyfikatów wydanych po 2021 roku. Wcześniej używano RSA-2048. Przejście na ECDSA zwiększyło szybkość weryfikacji podpisu na urządzeniach i zmniejszyło rozmiar podpisu — dla aplikacji mobilnych jest to szczególnie ważne, ponieważ weryfikacja podpisu jest wykonywana przy każdym uruchomieniu. Według Apple Security Engineering (2025), ECDSA P-256 zapewnia równoważny poziom bezpieczeństwa jak RSA-2048 przy znacznie mniejszych kosztach obliczeniowych.

Dla procesów CI/CD certyfikat wraz z kluczem prywatnym należy wyeksportować do PKCS12 (.p12) i przechowywać w chronionym magazynie. GitHub Actions, Bitrise, Jenkins i inne systemy CI obsługują import certyfikatów przez zmienne środowiskowe lub sekrety. Po imporcie na agencie CI certyfikat jest tymczasowo dodawany do pęku kluczy, używany do podpisu i usuwany. Fastlane Match automatyzuje ten proces, synchronizując certyfikaty między deweloperami za pomocą zaszyfrowanego repozytorium git.

Różnica między certyfikatami Development i Distribution

Development certyfikat umożliwia podpisywanie aplikacji do uruchamiania na fizycznych urządzeniach dewelopera. Do jego uzyskania wystarczy darmowe konto Apple ID — Xcode może wygenerować Development certyfikat automatycznie. Distribution certyfikat jest wydawany tylko dla płatnych kont Apple Developer Program ($99/rok) i jest wymagany do wysyłania aplikacji do App Store, dystrybucji Ad Hoc lub Enterprise. Jedno konto może mieć wiele Distribution certyfikatów — na przykład osobny dla każdej aplikacji lub dla różnych zespołów.

Rodzaje Apple Certificate

Apple Developer Portal udostępnia kilka typów certyfikatów, z których każdy jest przeznaczony do określonego zadania. iOS App Development — podstawowy certyfikat do podpisywania aplikacji na etapie tworzenia. Apple Distribution — główny certyfikat do publikacji w App Store. Mac Development i Mac Distribution — odpowiedniki dla aplikacji macOS. Dla każdego typu certyfikatu istnieje oddzielne żądanie (CSR) w Apple Developer Portal.

Osobną kategorię stanowią certyfikaty do powiadomień push. Apple Push Notification service (APNs) wymaga albo osobnego certyfikatu SSL, albo użycia tokenów uwierzytelniających (APNs Auth Key). Certyfikaty SSL APNs są wydawane osobno dla środowisk Development (Sandbox) i Production oraz są przypisane do konkretnego App ID. APNs Auth Key — nowsze podejście: jeden klucz (.p8) obsługuje wszystkie aplikacje konta, co upraszcza zarządzanie.

Typ certyfikatuPrzeznaczenieOkres ważności
iOS App DevelopmentPodpis do testowania na urządzeniach1 rok
Apple DistributionPublikacja w App Store i Ad Hoc1 rok
Mac DevelopmentPodpis aplikacji macOS do tworzenia1 rok
Mac DistributionPublikacja w Mac App Store1 rok
APNs SSL (Sandbox)Powiadomienia push w środowisku testowym1-3 lata
APNs SSL (Production)Powiadomienia push w produkcji1-3 lata

Tworzenie i zarządzanie certyfikatami

Tworzenie Apple Certificate rozpoczyna się od wygenerowania żądania podpisania certyfikatu (Certificate Signing Request, CSR) przez Keychain Access na macOS. Keychain Access tworzy parę kluczy: klucz prywatny pozostaje w pęku, a CSR jest wysyłany do Apple Developer Portal. Po weryfikacji tożsamości Apple podpisuje CSR i wydaje gotowy certyfikat (.cer), który należy pobrać i zainstalować podwójnym kliknięciem.

Do zarządzania wieloma projektami i zespołami Apple udostępnia możliwość tworzenia certyfikatów dla różnych Team ID. Jeden deweloper może być członkiem wielu zespołów (przez Apple Developer Program — App Store Connect), a dla każdego zespołu wydawane są oddzielne certyfikaty. Xcode automatycznie przełącza certyfikaty w zależności od wybranego zespołu w ustawieniach Signing & Capabilities.

Rewokacja (unieważnienie) certyfikatu to krytyczna operacja: wszystkie aplikacje podpisane tym certyfikatem przestają być instalowane na nowych urządzeniach (już zainstalowane nadal działają). Apple Developer Portal umożliwia unieważnienie dowolnego certyfikatu w sekcji Certificates. Przyczyny rewokacji: kompromitacja klucza prywatnego, zwolnienie dewelopera z zespołu, naruszenie warunków Apple Developer Program. Po rewokacji należy wydać nowy certyfikat i ponownie podpisać wszystkie aktywne buildy.

Keychain i eksport certyfikatów

Keychain (pęk kluczy) — systemowe przechowywanie macOS dla certyfikatów, kluczy prywatnych i haseł. Wszystkie certyfikaty Apple i odpowiadające im klucze prywatne są przechowywane w pęku logowania (login.keychain) użytkownika. Xcode odwołuje się do Keychain przy podpisywaniu kodu, automatycznie wybierając odpowiedni certyfikat według typu kompilacji. Do diagnozowania problemów z podpisem wygodnie jest użyć wbudowanego narzędzia Keychain Access (folder /Applications/Utilities).

Eksport certyfikatu dla CI/CD wykonuje się przez Keychain Access: wybierz certyfikat i odpowiadający mu klucz prywatny (powinny być rozwinięte w jednym wierszu), kliknij prawym przyciskiem i wybierz Export. Format — PKCS12 (.p12). Przy eksporcie Keychain poprosi o hasło ochrony pliku — to hasło będzie potrzebne przy imporcie na serwerze CI. Bez klucza prywatnego wyeksportowany certyfikat jest bezużyteczny do podpisywania — może być używany tylko do weryfikacji już podpisanego kodu.

Import certyfikatu w CI/CD

Przykładowe polecenie do importu certyfikatu do pęku kluczy agenta CI przy użyciu narzędzia security:

bash
# Tworzenie tymczasowego pęku kluczy
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain

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

# Konfiguracja polityki podpisywania
security set-key-partition-list -S apple: -s \
  -k "temp" build.keychain

Security create-keychain tworzy tymczasowy pęk kluczy, izolowany od użytkownika. Jest to ważne dla CI, aby nie zanieczyszczać systemowego pęku kluczy agenta. Flaga -T /usr/bin/codesign zezwala narzędziu codesign na dostęp do kluczy bez pytania o hasło — w przeciwnym razie automatyczne podpisywanie w pipeline przerwie się oknem dialogowym. Polecenie set-key-partition-list jest niezbędne do zgodności z wymaganiami macOS dotyczącymi podpisywania kodu w trybie automatycznym.

Problemy z certyfikatami i ich rozwiązywanie

Najczęstszym błędem jest „No signing certificate found” podczas kompilacji w Xcode. Występuje, gdy w Keychain brakuje certyfikatu z kluczem prywatnym odpowiadającego wybranemu typowi kompilacji. Rozwiązanie: sprawdź Keychain Access pod kątem obecności certyfikatu, pobierz go z Apple Developer Portal i zainstaluj. Jeśli klucz prywatny został utracony (stary komputer, reinstalacja systemu), należy unieważnić stary certyfikat i wydać nowy.

Błąd „Valid signing certificate not found” w CI/CD występuje, gdy na agencie nie są zainstalowane pośrednie certyfikaty Apple (Apple Worldwide Developer Relations CA). Apple dołącza pośrednie certyfikaty do łańcucha przy pobieraniu certyfikatu dewelopera, ale przy ręcznym eksporcie .p12 mogą ich brakować. Rozwiązanie — pobierz pośrednie certyfikaty ze strony Apple Certificate Authority i zainstaluj je w pęku kluczy agenta CI.

Problem z wygasłym certyfikatem objawia się błędem „This certificate has an invalid issuer” podczas podpisywania. Apple Developer Portal pokazuje status każdego certyfikatu i datę wygaśnięcia. Jeśli aplikacja została już opublikowana w App Store z wygasłym certyfikatem, nadal działa — App Store używa własnego certyfikatu Apple do dystrybucji. Jednak do przesłania nowego builda wymagany jest ważny Distribution certyfikat. Fastlane zawiera polecenie cert do automatycznego tworzenia i odnawiania certyfikatów.

Często zadawane pytania

Czy można użyć jednego Apple Certificate dla aplikacji iOS i macOS?

Nie, dla iOS i macOS wydawane są różne typy certyfikatów — iOS App Development i Mac Development. Apple Distribution certyfikat również jest podzielony według platform. Podczas tworzenia certyfikatu w Apple Developer Portal należy określić docelową platformę — uniwersalny certyfikat dla wszystkich platform nie istnieje.

Co zrobić, jeśli klucz prywatny certyfikatu został utracony?

Należy unieważnić stary certyfikat w Apple Developer Portal przez Certificates, Identifiers & Profiles. Następnie utworzyć nowy CSR przez Keychain Access i wydać nowy certyfikat. Wszystkie aplikacje podpisane starym certyfikatem będą wymagać ponownego podpisania i ponownego przesłania do App Store, jeśli trzeba wydać aktualizację.

Ile certyfikatów może być na jednym koncie Apple Developer?

Dla jednego konta Apple Developer Program dozwolone są nie więcej niż dwa certyfikaty Distribution i nieograniczona liczba certyfikatów Development jednocześnie. Enterprise konta mają oddzielne limity. Jeśli osiągnięto limit certyfikatów Distribution, należy unieważnić jeden z istniejących przed utworzeniem nowego.

Jak sprawdzić okres ważności certyfikatu z wiersza poleceń?

Użyj narzędzia security: security find-identity -v -p basic wyświetli wszystkie certyfikaty w pęku kluczy z datami wygaśnięcia. Dla konkretnego certyfikatu podaj jego skrót SHA-1: security find-certificate -c „Developer” -p | openssl x509 -noout -enddate.

Czy zmiana konta Apple ID wpływa na istniejące certyfikaty?

Tak, certyfikaty są przypisane do konkretnego konta Apple Developer (Team ID). Przy zmianie konta stare certyfikaty stają się nieważne dla nowego Team ID. Xcode przy zmianie konta w Accounts Preferences automatycznie prosi o utworzenie nowych certyfikatów dla nowego zespołu.

Podsumowanie

  • Apple Certificate — cyfrowy certyfikat X.509 wydany przez Apple CA do potwierdzania tożsamości dewelopera przy podpisywaniu kodu
  • Development certyfikat umożliwia uruchamianie aplikacji na fizycznych urządzeniach bez publikacji w App Store
  • Distribution certyfikat jest wymagany do przesyłania aplikacji do App Store i dystrybucji Ad Hoc
  • APNs certyfikaty lub tokeny są niezbędne do dostarczania powiadomień push przez serwery Apple
  • Klucz prywatny jest przechowywany w Keychain dewelopera i nie może być odzyskany po utracie — wymagane unieważnienie certyfikatu
  • PKCS12 eksport jest używany do przenoszenia certyfikatu między komputerami i do systemów CI/CD
  • Łańcuch zaufania Apple obejmuje główny, pośredni i certyfikat dewelopera — naruszenie dowolnego ogniwa blokuje podpis

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również