Apple Certificate est un document numérique délivré par Apple Developer Portal pour la signature de code des applications sous iOS, iPadOS, macOS, tvOS et watchOS. Selon Apple Developer Support, 2026, les certificats font partie de l’infrastructure à clé publique (PKI) et sont nécessaires pour confirmer l’identité du développeur. Dans cet article, nous aborderons les types de certificats, le processus de création et de gestion.
Points clés
Apple Certificate est un certificat cryptographique au format X.509 délivré par l’autorité de certification Apple (Apple Certificate Authority). Il confirme que son titulaire est un membre enregistré de l’Apple Developer Program et a le droit de signer des applications pour l’écosystème Apple. Le certificat se compose d’une clé publique, de métadonnées du propriétaire et d’une signature numérique d’Apple CA — n’importe qui peut vérifier l’authenticité du certificat en utilisant le certificat racine Apple intégré dans le système d’exploitation.
L’architecture PKI d’Apple comprend trois niveaux : le certificat racine Apple Root CA, le certificat intermédiaire (Apple Worldwide Developer Relations CA) et le certificat du développeur. Apple Worldwide Developer Relations CA signe tous les certificats de développeurs — si ce certificat intermédiaire manque dans la chaîne de confiance, la signature de code est considérée comme invalide. Les certificats racine Apple sont mis à jour automatiquement via le mécanisme Apple Trust Store intégré dans iOS et macOS.
Chaque certificat a une période de validité — d’un à trois ans, selon le type. Apple Developer Program notifie automatiquement le développeur 30 jours avant l’expiration du certificat par e-mail et notifications push. Après expiration, l’ancien certificat ne peut plus être utilisé pour signer de nouvelles versions — un nouveau doit être émis ; cependant, les applications signées avec le certificat expiré continuent de fonctionner sur les appareils des utilisateurs.
La chaîne de confiance garantit que le certificat du développeur a bien été délivré par Apple. iOS vérifie : le certificat racine Apple Root CA (intégré dans le firmware), le certificat intermédiaire Apple Worldwide Developer Relations CA et le certificat du développeur. Si un élément de la chaîne est manquant ou invalide, iOS bloque le lancement de l’application avec une erreur de signature de code. macOS fournit l’utilitaire security pour vérifier la chaîne de confiance de n’importe quel certificat dans le trousseau.
Le processus de signature de code avec un Apple Certificate repose sur la cryptographie asymétrique. La clé privée est stockée sur l’ordinateur du développeur dans le Keychain, tandis que la clé publique est incluse dans le certificat et envoyée à Apple Developer Portal. Lorsque Xcode signe une application, il crée un résumé (hash) du fichier binaire et le chiffre avec la clé privée — c’est la signature numérique. L’appareil déchiffre la signature avec la clé publique du certificat et la compare au hash calculé.
Apple utilise l’algorithme ECDSA (Elliptic Curve Digital Signature Algorithm) avec la courbe P-256 pour tous les certificats émis après 2021. Auparavant, RSA-2048 était utilisé. La transition vers ECDSA a augmenté la vitesse de vérification des signatures sur les appareils et réduit la taille des signatures — c’est particulièrement important pour les applications mobiles, car la vérification de signature est effectuée à chaque lancement. Selon Apple Security Engineering (2025), ECDSA P-256 offre un niveau de sécurité équivalent à RSA-2048 avec des coûts de calcul considérablement réduits.
Pour les processus CI/CD, le certificat accompagné de la clé privée doit être exporté au format PKCS12 (.p12) et stocké dans un référentiel sécurisé. GitHub Actions, Bitrise, Jenkins et d’autres systèmes CI prennent en charge l’importation de certificats via des variables d’environnement ou des secrets. Après l’importation sur l’agent CI, le certificat est temporairement ajouté au trousseau, utilisé pour signer puis supprimé. Fastlane Match automatise ce processus en synchronisant les certificats entre les développeurs via un dépôt git chiffré.
Le certificat Development permet de signer des applications pour les exécuter sur les appareils physiques du développeur. Un compte Apple ID gratuit suffit pour l’obtenir — Xcode peut générer un certificat Development automatiquement. Le certificat Distribution n’est délivré que pour les comptes Apple Developer Program payants (99 $/an) et est requis pour soumettre une application à l’App Store, pour la distribution Ad Hoc ou la distribution Enterprise. Un compte peut avoir plusieurs certificats Distribution — par exemple, un pour chaque application ou pour différentes équipes.
Apple Developer Portal propose plusieurs types de certificats, chacun conçu pour un objectif spécifique. iOS App Development — certificat de base pour signer des applications pendant le développement. Apple Distribution — certificat principal pour publier sur l’App Store. Mac Development et Mac Distribution — équivalents pour les applications macOS. Chaque type de certificat nécessite une demande (CSR) séparée dans Apple Developer Portal.
Une catégorie distincte concerne les certificats pour les notifications push. Apple Push Notification service (APNs) nécessite soit un certificat SSL séparé, soit l’utilisation de jetons d’authentification (APNs Auth Key). Les certificats SSL APNs sont émis séparément pour les environnements Development (Sandbox) et Production et sont liés à un App ID spécifique. APNs Auth Key est une approche plus moderne : une seule clé (.p8) dessert toutes les applications du compte, simplifiant la gestion.
| Type de certificat | Objectif | Validité |
|---|---|---|
| iOS App Development | Signature pour tests sur appareils | 1 an |
| Apple Distribution | Publication sur l’App Store et Ad Hoc | 1 an |
| Mac Development | Signature d’apps macOS pour développement | 1 an |
| Mac Distribution | Publication sur le Mac App Store | 1 an |
| APNs SSL (Sandbox) | Notifications push en environnement de test | 1-3 ans |
| APNs SSL (Production) | Notifications push en production | 1-3 ans |
La création d’un Apple Certificate commence par la génération d’une demande de signature de certificat (CSR) via Keychain Access sur macOS. Keychain Access crée une paire de clés : la clé privée reste dans le trousseau, tandis que la CSR est envoyée à Apple Developer Portal. Après vérification d’identité, Apple signe la CSR et émet un certificat prêt (.cer) à télécharger et installer par double-clic.
Pour gérer plusieurs projets et équipes, Apple offre la possibilité de créer des certificats pour différents Team ID. Un développeur peut être membre de plusieurs équipes (via Apple Developer Program — App Store Connect), et des certificats séparés sont émis pour chaque équipe. Xcode change automatiquement les certificats en fonction de l’équipe sélectionnée dans les paramètres Signing & Capabilities.
La révocation d’un certificat est une opération critique : toutes les applications signées avec ce certificat cessent de s’installer sur les nouveaux appareils (celles déjà installées continuent de fonctionner). Apple Developer Portal permet de révoquer n’importe quel certificat dans la section Certificates. Raisons de révocation : compromission de la clé privée, départ du développeur de l’équipe, violation des conditions de l’Apple Developer Program. Après révocation, un nouveau certificat doit être émis et toutes les versions actives doivent être resignées.
Keychain (trousseau) est le stockage système macOS pour les certificats, les clés privées et les mots de passe. Tous les certificats Apple et les clés privées correspondantes sont stockés dans le trousseau de connexion (login.keychain) de l’utilisateur. Xcode accède au Keychain lors de la signature de code, sélectionnant automatiquement le certificat approprié en fonction du type de version. Pour diagnostiquer les problèmes de signature, l’utilitaire intégré Keychain Access (dossier /Applications/Utilities) est utile.
L’exportation d’un certificat pour CI/CD s’effectue via Keychain Access : sélectionnez le certificat et la clé privée correspondante (ils doivent être développés sur une seule ligne), faites un clic droit et choisissez Export. Le format est PKCS12 (.p12). Lors de l’exportation, Keychain demandera un mot de passe pour protéger le fichier — ce mot de passe sera nécessaire lors de l’importation sur le serveur CI. Sans la clé privée, le certificat exporté est inutile pour signer — il ne peut être utilisé que pour vérifier du code déjà signé.
Exemple de commande pour importer un certificat dans le trousseau de l’agent CI à l’aide de l’utilitaire security :
# Création d’un trousseau temporaire
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain
# Importation du certificat depuis .p12
security import certificate.p12 -k build.keychain \
-P "${P12_PASSWORD}" -T /usr/bin/codesign
# Configuration de la politique de signature
security set-key-partition-list -S apple: -s \
-k "temp" build.keychain
Security create-keychain crée un trousseau temporaire isolé de celui de l’utilisateur. Ceci est important pour CI afin de ne pas polluer le trousseau système de l’agent. Le drapeau -T /usr/bin/codesign permet à l’utilitaire codesign d’accéder aux clés sans demander de mot de passe — sinon, la signature automatique dans le pipeline serait interrompue par une boîte de dialogue. La commande set-key-partition-list est nécessaire pour la compatibilité avec les exigences de signature de code macOS en mode automatisé.
L’erreur la plus courante est «No signing certificate found» lors de la compilation dans Xcode. Elle se produit lorsque le Keychain ne contient pas de certificat avec une clé privée correspondant au type de version sélectionné. Solution : vérifiez dans Keychain Access si le certificat existe, téléchargez-le depuis Apple Developer Portal et installez-le. Si la clé privée est perdue (ancien ordinateur, réinstallation du système), il faut révoquer l’ancien certificat et en émettre un nouveau.
L’erreur «Valid signing certificate not found» dans CI/CD se produit si l’agent n’a pas les certificats intermédiaires Apple installés (Apple Worldwide Developer Relations CA). Apple inclut les certificats intermédiaires dans la chaîne lors du téléchargement du certificat du développeur, mais ils peuvent manquer lors de l’exportation manuelle de .p12. Solution — téléchargez les certificats intermédiaires depuis le site d’Apple Certificate Authority et installez-les dans le trousseau de l’agent CI.
Un problème de certificat expiré se manifeste par l’erreur «This certificate has an invalid issuer» lors de la signature. Apple Developer Portal affiche le statut de chaque certificat et sa date d’expiration. Si une application est déjà publiée sur l’App Store avec un certificat expiré, elle continue de fonctionner — l’App Store utilise son propre certificat Apple pour la distribution. Cependant, pour télécharger une nouvelle version, un certificat Distribution valide est nécessaire. Fastlane inclut la commande cert pour créer et renouveler automatiquement les certificats.
Questions fréquentes
Non, des types de certificats différents sont émis pour iOS et macOS — iOS App Development et Mac Development. Le certificat Apple Distribution est également séparé par plateforme. Lors de la création d’un certificat dans Apple Developer Portal, vous devez spécifier la plateforme cible — il n’existe pas de certificat universel pour toutes les plateformes.
Vous devez révoquer l’ancien certificat dans Apple Developer Portal via Certificates, Identifiers & Profiles. Ensuite, créez une nouvelle CSR via Keychain Access et émettez un nouveau certificat. Toutes les applications signées avec l’ancien certificat devront être resignées et retéléchargées sur l’App Store si une mise à jour doit être publiée.
Un compte Apple Developer Program autorise au maximum deux certificats Distribution et un nombre illimité de certificats Development simultanément. Les comptes Enterprise ont des limites distinctes. Si la limite de certificats Distribution est atteinte, l’un des certificats existants doit être révoqué avant d’en créer un nouveau.
Utilisez l’utilitaire security : security find-identity -v -p basic liste tous les certificats du trousseau avec leurs dates d’expiration. Pour un certificat spécifique, indiquez son hash SHA-1 : security find-certificate -c «Developer» -p | openssl x509 -noout -enddate.
Oui, les certificats sont liés à un compte Apple Developer spécifique (Team ID). Lors du changement de compte, les anciens certificats deviennent invalides pour le nouveau Team ID. Xcode, lors du changement de compte dans Accounts Preferences, demande automatiquement la création de nouveaux certificats pour la nouvelle équipe.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi