Apple Certificate — cos’è, quali sono i tipi e come funziona

Autore: IT Sectr Pubblicato: 2026-04-16 Tempo di lettura: 9 min

Apple Certificate è un documento digitale rilasciato da Apple Developer Portal per la firma del codice di applicazioni per iOS, iPadOS, macOS, tvOS e watchOS. Secondo Apple Developer Support, 2026, i certificati fanno parte dell’infrastruttura a chiave pubblica (PKI) e sono necessari per confermare l’identità dello sviluppatore. In questo articolo esamineremo i tipi di certificati, il processo di creazione e gestione.

Punti chiave

  • Apple Certificate — un certificato digitale che verifica l’identità dello sviluppatore durante la firma del codice
  • Il certificato Development consente di eseguire applicazioni su dispositivi fisici durante lo sviluppo
  • Il certificato Distribution è necessario per la pubblicazione sull’App Store o la distribuzione Ad Hoc
  • I certificati Push Notification vengono utilizzati per firmare la connessione con APNs e consegnare le notifiche
  • La chiave privata del certificato è memorizzata nel Keychain dello sviluppatore e non deve essere condivisa con terze parti

Cos’è un Apple Certificate

Apple Certificate è un certificato crittografico in formato X.509 rilasciato dall’autorità di certificazione Apple (Apple Certificate Authority). Conferma che il suo titolare è un membro registrato dell’Apple Developer Program e ha il diritto di firmare applicazioni per l’ecosistema Apple. Il certificato consiste in una chiave pubblica, metadati del proprietario e una firma digitale di Apple CA — chiunque può verificare l’autenticità del certificato utilizzando il certificato root Apple integrato nel sistema operativo.

L’architettura PKI di Apple include tre livelli: il certificato root Apple Root CA, il certificato intermedio (Apple Worldwide Developer Relations CA) e il certificato dello sviluppatore. Apple Worldwide Developer Relations CA firma tutti i certificati degli sviluppatori — se questo certificato intermedio manca nella catena di fiducia, la firma del codice è considerata non valida. I certificati root Apple vengono aggiornati automaticamente attraverso il meccanismo Apple Trust Store integrato in iOS e macOS.

Ogni certificato ha un periodo di validità — da uno a tre anni, a seconda del tipo. Apple Developer Program notifica automaticamente lo sviluppatore 30 giorni prima della scadenza del certificato via email e notifiche push. Dopo la scadenza, il certificato vecchio non può essere utilizzato per firmare nuove build — è necessario emetterne uno nuovo; tuttavia, le applicazioni firmate con il certificato scaduto continuano a funzionare sui dispositivi degli utenti.

Catena di fiducia Apple

La catena di fiducia garantisce che il certificato dello sviluppatore sia stato effettivamente rilasciato da Apple. iOS verifica: il certificato root Apple Root CA (integrato nel firmware), il certificato intermedio Apple Worldwide Developer Relations CA e il certificato dello sviluppatore. Se un elemento della catena è mancante o non valido, iOS blocca l’avvio dell’applicazione con un errore di firma del codice. macOS fornisce l’utilità security per verificare la catena di fiducia di qualsiasi certificato nel portachiavi.

Come funzionano i certificati Apple

Il processo di firma del codice con un Apple Certificate si basa sulla crittografia asimmetrica. La chiave privata è memorizzata sul computer dello sviluppatore nel Keychain, mentre la chiave pubblica è inclusa nel certificato e inviata all’Apple Developer Portal. Quando Xcode firma un’applicazione, crea un digest (hash) del file binario e lo crittografa con la chiave privata — questa è la firma digitale. Il dispositivo decrittografa la firma utilizzando la chiave pubblica dal certificato e la confronta con l’hash calcolato.

Apple utilizza l’algoritmo ECDSA (Elliptic Curve Digital Signature Algorithm) con la curva P-256 per tutti i certificati emessi dopo il 2021. In precedenza veniva utilizzato RSA-2048. La transizione a ECDSA ha aumentato la velocità di verifica della firma sui dispositivi e ridotto le dimensioni della firma — questo è particolarmente importante per le applicazioni mobili, poiché la verifica della firma viene eseguita a ogni avvio. Secondo Apple Security Engineering (2025), ECDSA P-256 fornisce un livello di sicurezza equivalente a RSA-2048 con costi computazionali significativamente inferiori.

Per i processi CI/CD, il certificato insieme alla chiave privata deve essere esportato in PKCS12 (.p12) e archiviato in un deposito sicuro. GitHub Actions, Bitrise, Jenkins e altri sistemi CI supportano l’importazione di certificati tramite variabili d’ambiente o segreti. Dopo l’importazione sull’agente CI, il certificato viene temporaneamente aggiunto al portachiavi, utilizzato per firmare e rimosso. Fastlane Match automatizza questo processo sincronizzando i certificati tra gli sviluppatori tramite un repository git crittografato.

Differenza tra certificati Development e Distribution

Il certificato Development consente di firmare applicazioni per l’esecuzione su dispositivi fisici dello sviluppatore. Un account Apple ID gratuito è sufficiente per ottenerlo — Xcode può generare automaticamente un certificato Development. Il certificato Distribution viene rilasciato solo per account Apple Developer Program a pagamento ($99/anno) ed è necessario per inviare un’app all’App Store, per la distribuzione Ad Hoc o Enterprise. Un account può avere più certificati Distribution — ad esempio, uno per ogni applicazione o per team diversi.

Tipi di Apple Certificate

L’Apple Developer Portal offre diversi tipi di certificati, ciascuno progettato per uno scopo specifico. iOS App Development — certificato di base per firmare applicazioni durante lo sviluppo. Apple Distribution — certificato principale per la pubblicazione sull’App Store. Mac Development e Mac Distribution — equivalenti per applicazioni macOS. Ogni tipo di certificato richiede una richiesta (CSR) separata nell’Apple Developer Portal.

Una categoria a parte sono i certificati per le notifiche push. Apple Push Notification service (APNs) richiede un certificato SSL separato o l’uso di token di autenticazione (APNs Auth Key). I certificati SSL APNs vengono emessi separatamente per gli ambienti Development (Sandbox) e Production e sono legati a uno specifico App ID. APNs Auth Key è un approccio più moderno: un’unica chiave (.p8) serve tutte le applicazioni dell’account, semplificando la gestione.

Tipo di certificatoScopoValidità
iOS App DevelopmentFirma per test su dispositivi1 anno
Apple DistributionPubblicazione su App Store e Ad Hoc1 anno
Mac DevelopmentFirma app macOS per sviluppo1 anno
Mac DistributionPubblicazione su Mac App Store1 anno
APNs SSL (Sandbox)Notifiche push in ambiente di test1-3 anni
APNs SSL (Production)Notifiche push in produzione1-3 anni

Creazione e gestione dei certificati

La creazione di un Apple Certificate inizia generando una Certificate Signing Request (CSR) tramite Keychain Access su macOS. Keychain Access crea una coppia di chiavi: la chiave privata rimane nel portachiavi, mentre la CSR viene inviata all’Apple Developer Portal. Dopo la verifica dell’identità, Apple firma la CSR ed emette un certificato pronto (.cer) che deve essere scaricato e installato con un doppio clic.

Per gestire più progetti e team, Apple offre la possibilità di creare certificati per diversi Team ID. Uno sviluppatore può essere membro di più team (tramite Apple Developer Program — App Store Connect) e vengono emessi certificati separati per ciascun team. Xcode cambia automaticamente i certificati in base al team selezionato nelle impostazioni di Signing & Capabilities.

La revoca di un certificato è un’operazione critica: tutte le applicazioni firmate con questo certificato smettono di installarsi sui nuovi dispositivi (quelle già installate continuano a funzionare). Apple Developer Portal consente di revocare qualsiasi certificato nella sezione Certificates. Motivi di revoca: compromissione della chiave privata, uscita dello sviluppatore dal team, violazione dei termini dell’Apple Developer Program. Dopo la revoca, è necessario emettere un nuovo certificato e firmare nuovamente tutte le build attive.

Keychain ed esportazione dei certificati

Keychain (portachiavi) è l’archivio di sistema macOS per certificati, chiavi private e password. Tutti i certificati Apple e le relative chiavi private sono memorizzati nel portachiavi di login (login.keychain) dell’utente. Xcode accede al Keychain durante la firma del codice, selezionando automaticamente il certificato appropriato in base al tipo di build. Per diagnosticare problemi di firma, è utile l’utilità integrata Keychain Access (cartella /Applications/Utilities).

L’esportazione di un certificato per CI/CD viene eseguita tramite Keychain Access: selezionare il certificato e la chiave privata corrispondente (devono essere espansi in una riga), fare clic con il tasto destro e scegliere Export. Il formato è PKCS12 (.p12). Durante l’esportazione, Keychain richiederà una password per proteggere il file — questa password sarà necessaria durante l’importazione sul server CI. Senza la chiave privata, il certificato esportato è inutile per firmare — può essere utilizzato solo per verificare codice già firmato.

Importazione del certificato in CI/CD

Esempio di comando per importare un certificato nel portachiavi dell’agente CI utilizzando l’utilità security:

bash
# Creazione di un portachiavi temporaneo
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain

# Importazione del certificato da .p12
security import certificate.p12 -k build.keychain \
  -P "${P12_PASSWORD}" -T /usr/bin/codesign

# Configurazione della politica di firma
security set-key-partition-list -S apple: -s \
  -k "temp" build.keychain

Security create-keychain crea un portachiavi temporaneo isolato da quello dell’utente. Questo è importante per CI per non contaminare il portachiavi di sistema dell’agente. Il flag -T /usr/bin/codesign consente all’utilità codesign di accedere alle chiavi senza richiedere password — altrimenti la firma automatica nella pipeline verrebbe interrotta da un dialogo. Il comando set-key-partition-list è necessario per la compatibilità con i requisiti di firma del codice di macOS in modalità automatizzata.

Problemi con i certificati e soluzioni

L’errore più comune è “No signing certificate found” durante la compilazione in Xcode. Si verifica quando Keychain non ha un certificato con chiave privata corrispondente al tipo di build selezionato. Soluzione: verificare in Keychain Access se il certificato esiste, scaricarlo dall’Apple Developer Portal e installarlo. Se la chiave privata è stata persa (computer vecchio, reinstallazione del sistema), è necessario revocare il vecchio certificato ed emetterne uno nuovo.

L’errore “Valid signing certificate not found” in CI/CD si verifica se l’agente non ha installati i certificati intermedi Apple (Apple Worldwide Developer Relations CA). Apple include i certificati intermedi nella catena durante il download del certificato dello sviluppatore, ma possono mancare durante l’esportazione manuale di .p12. Soluzione — scaricare i certificati intermedi dal sito Apple Certificate Authority e installarli nel portachiavi dell’agente CI.

Un problema di certificato scaduto si manifesta con l’errore “This certificate has an invalid issuer” durante la firma. L’Apple Developer Portal mostra lo stato di ciascun certificato e la sua data di scadenza. Se un’applicazione è già pubblicata sull’App Store con un certificato scaduto, continua a funzionare — l’App Store utilizza il proprio certificato Apple per la distribuzione. Tuttavia, per caricare una nuova build è necessario un certificato Distribution valido. Fastlane include il comando cert per creare e rinnovare automaticamente i certificati.

Domande frequenti

Si può usare lo stesso Apple Certificate per applicazioni iOS e macOS?

No, per iOS e macOS vengono emessi tipi diversi di certificati — iOS App Development e Mac Development. Il certificato Apple Distribution è anch’esso separato per piattaforma. Quando si crea un certificato nell’Apple Developer Portal, è necessario specificare la piattaforma di destinazione — non esiste un certificato universale per tutte le piattaforme.

Cosa fare se la chiave privata del certificato viene persa?

È necessario revocare il vecchio certificato nell’Apple Developer Portal tramite Certificates, Identifiers & Profiles. Quindi creare una nuova CSR tramite Keychain Access ed emettere un nuovo certificato. Tutte le applicazioni firmate con il vecchio certificato dovranno essere firmate nuovamente e ricaricate sull’App Store se è necessario pubblicare un aggiornamento.

Quanti certificati può avere un account Apple Developer?

Un account Apple Developer Program consente un massimo di due certificati Distribution e un numero illimitato di certificati Development contemporaneamente. Gli account Enterprise hanno limiti separati. Se viene raggiunto il limite di certificati Distribution, è necessario revocare uno dei certificati esistenti prima di crearne uno nuovo.

Come verificare la data di scadenza di un certificato dalla riga di comando?

Utilizzare l’utilità security: security find-identity -v -p basic elenca tutti i certificati nel portachiavi con le date di scadenza. Per un certificato specifico, specificare il suo hash SHA-1: security find-certificate -c “Developer” -p | openssl x509 -noout -enddate.

Il cambiamento dell’account Apple ID influisce sui certificati esistenti?

Sì, i certificati sono legati a uno specifico account Apple Developer (Team ID). Quando si cambia account, i vecchi certificati diventano non validi per il nuovo Team ID. Xcode, quando si cambia account in Accounts Preferences, richiede automaticamente la creazione di nuovi certificati per il nuovo team.

Riepilogo

  • Apple Certificate — un certificato digitale X.509 rilasciato da Apple CA per confermare l’identità dello sviluppatore durante la firma del codice
  • Il certificato Development consente di eseguire applicazioni su dispositivi fisici senza pubblicare sull’App Store
  • Il certificato Distribution è necessario per inviare un’app all’App Store e per la distribuzione Ad Hoc
  • I certificati o token APNs sono necessari per la consegna di notifiche push tramite i server Apple
  • La chiave privata è memorizzata nel Keychain dello sviluppatore e non può essere recuperata se persa — è necessaria la revoca del certificato
  • L’esportazione PKCS12 viene utilizzata per trasferire certificati tra computer e sistemi CI/CD
  • La catena di fiducia Apple include i certificati root, intermedio e dello sviluppatore — rompere un qualsiasi anello blocca la firma

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche