Το Apple Certificate είναι ένα ψηφιακό έγγραφο που εκδίδεται από το Apple Developer Portal για την υπογραφή κώδικα εφαρμογών για iOS, iPadOS, macOS, tvOS και watchOS. Σύμφωνα με το Apple Developer Support, 2026, τα πιστοποιητικά αποτελούν μέρος της υποδομής δημόσιου κλειδιού (PKI) και είναι απαραίτητα για την επιβεβαίωση της ταυτότητας του προγραμματιστή. Στο άρθρο θα εξετάσουμε τους τύπους πιστοποιητικών, τη διαδικασία δημιουργίας και διαχείρισής τους.
Κύρια σημεία
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 ημέρες πριν από τη λήξη του πιστοποιητικού μέσω email και push ειδοποιήσεων. Μετά τη λήξη, το παλιό πιστοποιητικό δεν μπορεί να χρησιμοποιηθεί για υπογραφή νέων builds — πρέπει να εκδοθεί νέο, ωστόσο οι εφαρμογές που υπογράφηκαν με το ληγμένο πιστοποιητικό συνεχίζουν να λειτουργούν στις συσκευές των χρηστών.
Η αλυσίδα εμπιστοσύνης εγγυάται ότι το πιστοποιητικό προγραμματιστή εκδόθηκε πράγματι από την Apple. Το iOS ελέγχει: το ριζικό πιστοποιητικό Apple Root CA (ενσωματωμένο στο υλικολογισμικό), το ενδιάμεσο πιστοποιητικό Apple Worldwide Developer Relations CA, το πιστοποιητικό προγραμματιστή. Αν κάποιο στοιχείο της αλυσίδας λείπει ή είναι άκυρο, το iOS μπλοκάρει την εκκίνηση της εφαρμογής με σφάλμα code signing. Το macOS παρέχει το βοηθητικό πρόγραμμα security για τον έλεγχο της αλυσίδας εμπιστοσύνης οποιουδήποτε πιστοποιητικού στην αλυσίδα κλειδιών.
Η διαδικασία υπογραφής κώδικα με χρήση Apple Certificate βασίζεται σε ασύμμετρη κρυπτογραφία. Το ιδιωτικό κλειδί (private key) αποθηκεύεται στον υπολογιστή του προγραμματιστή στο Keychain, ενώ το δημόσιο κλειδί (public key) περιλαμβάνεται στο πιστοποιητικό και αποστέλλεται στο Apple Developer Portal. Όταν το Xcode υπογράφει μια εφαρμογή, δημιουργεί μια σύνοψη (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 agent, το πιστοποιητικό προστίθεται προσωρινά στην αλυσίδα κλειδιών, χρησιμοποιείται για υπογραφή και αφαιρείται. Fastlane Match αυτοματοποιεί αυτή τη διαδικασία, συγχρονίζοντας πιστοποιητικά μεταξύ προγραμματιστών μέσω ενός κρυπτογραφημένου git αποθετηρίου.
Development πιστοποιητικό επιτρέπει την υπογραφή εφαρμογών για εκτέλεση σε φυσικές συσκευές του προγραμματιστή. Για την απόκτησή του αρκεί ένας δωρεάν λογαριασμός Apple ID — το Xcode μπορεί να δημιουργήσει αυτόματα ένα Development πιστοποιητικό. Distribution πιστοποιητικό εκδίδεται μόνο για πληρωμένους λογαριασμούς Apple Developer Program ($99/έτος) και απαιτείται για την αποστολή εφαρμογής στο App Store, διανομή Ad Hoc ή Enterprise. Ένας λογαριασμός μπορεί να έχει πολλαπλά Distribution πιστοποιητικά — για παράδειγμα, ξεχωριστά για κάθε εφαρμογή ή για διαφορετικές ομάδες.
Το 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 Hoc | 1 έτος |
| 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.
Η ανάκληση (revocation) ενός πιστοποιητικού είναι κρίσιμη λειτουργία: όλες οι εφαρμογές που υπογράφηκαν με αυτό το πιστοποιητικό δεν εγκαθίστανται σε νέες συσκευές (οι ήδη εγκατεστημένες συνεχίζουν να λειτουργούν). Apple Developer Portal επιτρέπει την ανάκληση οποιουδήποτε πιστοποιητικού στην ενότητα Certificates. Λόγοι ανάκλησης: παραβίαση του ιδιωτικού κλειδιού, αποχώρηση προγραμματιστή από την ομάδα, παραβίαση όρων του Apple Developer Program. Μετά την ανάκληση, πρέπει να εκδοθεί νέο πιστοποιητικό και να υπογραφούν ξανά όλα τα ενεργά builds.
Keychain (αλυσίδα κλειδιών) — η αποθήκη συστήματος macOS για πιστοποιητικά, ιδιωτικά κλειδιά και κωδικούς πρόσβασης. Όλα τα πιστοποιητικά Apple και τα αντίστοιχα ιδιωτικά κλειδιά αποθηκεύονται στην αλυσίδα κλειδιών σύνδεσης (login.keychain) του χρήστη. Το Xcode έχει πρόσβαση στο Keychain κατά την υπογραφή κώδικα, επιλέγοντας αυτόματα το κατάλληλο πιστοποιητικό ανάλογα με τον τύπο build. Για τη διάγνωση προβλημάτων υπογραφής, χρησιμοποιήστε το ενσωματωμένο βοηθητικό πρόγραμμα Keychain Access (φάκελος /Applications/Utilities).
Η εξαγωγή πιστοποιητικού για CI/CD γίνεται μέσω του Keychain Access: επιλέξτε το πιστοποιητικό και το αντίστοιχο ιδιωτικό κλειδί (πρέπει να είναι αναπτυγμένα στην ίδια γραμμή), κάντε δεξί κλικ και επιλέξτε Export. Μορφή — PKCS12 (.p12). Κατά την εξαγωγή, το Keychain θα ζητήσει κωδικό πρόσβασης για την προστασία του αρχείου — αυτός ο κωδικός θα χρειαστεί κατά την εισαγωγή στον διακομιστή CI. Χωρίς το ιδιωτικό κλειδί, το εξαγόμενο πιστοποιητικό είναι άχρηστο για υπογραφή — μπορεί να χρησιμοποιηθεί μόνο για επαλήθευση ήδη υπογεγραμμένου κώδικα.
Παράδειγμα εντολής για εισαγωγή πιστοποιητικού στην αλυσίδα κλειδιών του CI agent χρησιμοποιώντας το βοηθητικό πρόγραμμα security:
# Δημιουργία προσωρινής αλυσίδας κλειδιών
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 για να μην μολυνθεί η αλυσίδα κλειδιών συστήματος του agent. Η σημαία -T /usr/bin/codesign επιτρέπει στο βοηθητικό πρόγραμμα codesign πρόσβαση στα κλειδιά χωρίς αίτημα κωδικού — διαφορετικά η αυτόματη υπογραφή στο pipeline θα διακοπεί από ένα παράθυρο διαλόγου. Η εντολή set-key-partition-list είναι απαραίτητη για συμβατότητα με τις απαιτήσεις macOS για υπογραφή κώδικα σε αυτόματη λειτουργία.
Το πιο συνηθισμένο σφάλμα — “No signing certificate found” κατά τη μεταγλώττιση στο Xcode. Εμφανίζεται όταν στο Keychain λείπει ένα πιστοποιητικό με ιδιωτικό κλειδί που αντιστοιχεί στον επιλεγμένο τύπο build. Λύση: ελέγξτε το Keychain Access για την ύπαρξη του πιστοποιητικού, λήψτε το από το Apple Developer Portal και εγκαταστήστε το. Εάν το ιδιωτικό κλειδί έχει χαθεί (παλιός υπολογιστής, επανεγκατάσταση συστήματος), πρέπει να ανακληθεί το παλιό πιστοποιητικό και να εκδοθεί νέο.
Το σφάλμα “Valid signing certificate not found” σε CI/CD εμφανίζεται όταν τα ενδιάμεσα πιστοποιητικά Apple (Apple Worldwide Developer Relations CA) δεν είναι εγκατεστημένα στον agent. Apple συμπεριλαμβάνει τα ενδιάμεσα πιστοποιητικά στην αλυσίδα κατά τη λήψη του πιστοποιητικού προγραμματιστή, αλλά κατά τη χειροκίνητη εξαγωγή .p12 μπορεί να απουσιάζουν. Λύση — λήψη ενδιάμεσων πιστοποιητικών από τον ιστότοπο Apple Certificate Authority και εγκατάστασή τους στην αλυσίδα κλειδιών του CI agent.
Το πρόβλημα με πιστοποιητικό που έχει λήξει εκδηλώνεται με το σφάλμα “This certificate has an invalid issuer” κατά την υπογραφή. Το Apple Developer Portal εμφανίζει την κατάσταση κάθε πιστοποιητικού και την ημερομηνία λήξης. Εάν η εφαρμογή έχει ήδη δημοσιευτεί στο App Store με ληγμένο πιστοποιητικό, συνεχίζει να λειτουργεί — το App Store χρησιμοποιεί το δικό του πιστοποιητικό Apple για διανομή. Ωστόσο, για τη μεταφόρτωση νέου build απαιτείται έγκυρο Distribution πιστοποιητικό. Fastlane περιλαμβάνει την εντολή cert για αυτόματη δημιουργία και ανανέωση πιστοποιητικών.
Συχνές ερωτήσεις
Όχι, για 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 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 Developer (Team ID). Κατά την αλλαγή λογαριασμού, τα παλιά πιστοποιητικά καθίστανται άκυρα για το νέο Team ID. Xcode κατά την αλλαγή λογαριασμού στο Accounts Preferences ζητά αυτόματα τη δημιουργία νέων πιστοποιητικών για τη νέα ομάδα.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης