Apple Certificate es un documento digital emitido por Apple Developer Portal para la firma de código de aplicaciones en iOS, iPadOS, macOS, tvOS y watchOS. Según Apple Developer Support, 2026, los certificados forman parte de la infraestructura de clave pública (PKI) y son necesarios para confirmar la identidad del desarrollador. En este artículo analizaremos los tipos de certificados, el proceso de creación y gestión.
Puntos clave
Apple Certificate es un certificado criptográfico en formato X.509 emitido por la autoridad de certificación de Apple (Apple Certificate Authority). Confirma que su titular es un miembro registrado del Apple Developer Program y tiene derecho a firmar aplicaciones para el ecosistema Apple. El certificado consta de una clave pública, metadatos del propietario y una firma digital de Apple CA — cualquiera puede verificar la autenticidad del certificado usando el certificado raíz de Apple integrado en el sistema operativo.
La arquitectura PKI de Apple incluye tres niveles: el certificado raíz Apple Root CA, el certificado intermedio (Apple Worldwide Developer Relations CA) y el certificado del desarrollador. Apple Worldwide Developer Relations CA firma todos los certificados de desarrolladores — si este certificado intermedio falta en la cadena de confianza, la firma de código se considera inválida. Los certificados raíz de Apple se actualizan automáticamente a través del mecanismo Apple Trust Store integrado en iOS y macOS.
Cada certificado tiene un período de validez — de uno a tres años, según el tipo. Apple Developer Program notifica automáticamente al desarrollador 30 días antes del vencimiento del certificado por correo electrónico y notificaciones push. Después del vencimiento, el certificado antiguo no puede usarse para firmar nuevas compilaciones — es necesario emitir uno nuevo; sin embargo, las aplicaciones firmadas con el certificado vencido continúan funcionando en los dispositivos de los usuarios.
La cadena de confianza garantiza que el certificado del desarrollador fue realmente emitido por Apple. iOS verifica: el certificado raíz Apple Root CA (integrado en el firmware), el certificado intermedio Apple Worldwide Developer Relations CA y el certificado del desarrollador. Si falta algún elemento de la cadena o no es válido, iOS bloquea el inicio de la aplicación con un error de firma de código. macOS proporciona la utilidad security para verificar la cadena de confianza de cualquier certificado en el llavero.
El proceso de firma de código con un Apple Certificate se basa en criptografía asimétrica. La clave privada se almacena en el ordenador del desarrollador en el Keychain, mientras que la clave pública se incluye en el certificado y se envía al Apple Developer Portal. Cuando Xcode firma una aplicación, crea un resumen (hash) del archivo binario y lo cifra con la clave privada — esta es la firma digital. El dispositivo descifra la firma con la clave pública del certificado y la compara con el hash calculado.
Apple utiliza el algoritmo ECDSA (Elliptic Curve Digital Signature Algorithm) con la curva P-256 para todos los certificados emitidos después de 2021. Anteriormente se usaba RSA-2048. La transición a ECDSA aumentó la velocidad de verificación de firmas en los dispositivos y redujo el tamaño de la firma — esto es especialmente importante para aplicaciones móviles, ya que la verificación de firma se realiza en cada inicio. Según Apple Security Engineering (2025), ECDSA P-256 proporciona un nivel de seguridad equivalente a RSA-2048 con costos computacionales significativamente menores.
Para procesos CI/CD, el certificado junto con la clave privada debe exportarse a PKCS12 (.p12) y almacenarse en un repositorio seguro. GitHub Actions, Bitrise, Jenkins y otros sistemas CI admiten la importación de certificados a través de variables de entorno o secretos. Después de la importación en el agente CI, el certificado se agrega temporalmente al llavero, se usa para firmar y se elimina. Fastlane Match automatiza este proceso sincronizando certificados entre desarrolladores a través de un repositorio git cifrado.
El certificado Development permite firmar aplicaciones para ejecutarlas en dispositivos físicos del desarrollador. Una cuenta gratuita de Apple ID es suficiente para obtenerlo — Xcode puede generar un certificado Development automáticamente. El certificado Distribution se emite solo para cuentas pagas de Apple Developer Program ($99/año) y es necesario para enviar una aplicación a App Store, distribución Ad Hoc o distribución Enterprise. Una cuenta puede tener múltiples certificados Distribution — por ejemplo, uno para cada aplicación o para diferentes equipos.
Apple Developer Portal ofrece varios tipos de certificados, cada uno diseñado para un propósito específico. iOS App Development — certificado básico para firmar aplicaciones durante el desarrollo. Apple Distribution — certificado principal para publicar en App Store. Mac Development y Mac Distribution — análogos para aplicaciones macOS. Cada tipo de certificado requiere una solicitud (CSR) separada en Apple Developer Portal.
Una categoría aparte son los certificados para notificaciones push. Apple Push Notification service (APNs) requiere un certificado SSL separado o el uso de tokens de autenticación (APNs Auth Key). Los certificados SSL de APNs se emiten por separado para entornos Development (Sandbox) y Production y están vinculados a un App ID específico. APNs Auth Key es un enfoque más moderno: una sola clave (.p8) sirve para todas las aplicaciones de la cuenta, simplificando la gestión.
| Tipo de certificado | Propósito | Validez |
|---|---|---|
| iOS App Development | Firma para pruebas en dispositivos | 1 año |
| Apple Distribution | Publicación en App Store y Ad Hoc | 1 año |
| Mac Development | Firma de aplicaciones macOS para desarrollo | 1 año |
| Mac Distribution | Publicación en Mac App Store | 1 año |
| APNs SSL (Sandbox) | Notificaciones push en entorno de prueba | 1-3 años |
| APNs SSL (Production) | Notificaciones push en producción | 1-3 años |
La creación de un Apple Certificate comienza generando una solicitud de firma de certificado (CSR) a través de Keychain Access en macOS. Keychain Access crea un par de claves: la clave privada permanece en el llavero y la CSR se envía al Apple Developer Portal. Después de la verificación de identidad, Apple firma la CSR y emite un certificado listo (.cer) que debe descargarse e instalarse con doble clic.
Para gestionar múltiples proyectos y equipos, Apple permite crear certificados para diferentes Team ID. Un desarrollador puede ser miembro de varios equipos (a través de Apple Developer Program — App Store Connect), y se emiten certificados separados para cada equipo. Xcode cambia automáticamente los certificados según el equipo seleccionado en la configuración de Signing & Capabilities.
La revocación de un certificado es una operación crítica: todas las aplicaciones firmadas con este certificado dejan de instalarse en dispositivos nuevos (las ya instaladas continúan funcionando). Apple Developer Portal permite revocar cualquier certificado en la sección Certificates. Razones de revocación: compromiso de la clave privada, salida del desarrollador del equipo, incumplimiento de los términos del Apple Developer Program. Después de la revocación, se debe emitir un nuevo certificado y volver a firmar todas las compilaciones activas.
Keychain (llavero) es el almacenamiento del sistema macOS para certificados, claves privadas y contraseñas. Todos los certificados Apple y las claves privadas correspondientes se almacenan en el llavero de inicio de sesión (login.keychain) del usuario. Xcode accede al Keychain al firmar código, seleccionando automáticamente el certificado adecuado según el tipo de compilación. Para diagnosticar problemas de firma, es útil usar la utilidad integrada Keychain Access (carpeta /Applications/Utilities).
La exportación de un certificado para CI/CD se realiza a través de Keychain Access: selecciona el certificado y la clave privada correspondiente (deben estar expandidos en una misma fila), haz clic derecho y elige Exportar. El formato es PKCS12 (.p12). Durante la exportación, Keychain solicitará una contraseña para proteger el archivo — esta contraseña se necesitará al importar en el servidor CI. Sin la clave privada, el certificado exportado es inútil para firmar — solo puede usarse para verificar código ya firmado.
Ejemplo de comando para importar un certificado en el llavero del agente CI usando la utilidad security:
# Creando un llavero temporal
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain
# Importando el certificado desde .p12
security import certificate.p12 -k build.keychain \
-P "${P12_PASSWORD}" -T /usr/bin/codesign
# Configurando la política de firma
security set-key-partition-list -S apple: -s \
-k "temp" build.keychain
Security create-keychain crea un llavero temporal aislado del del usuario. Esto es importante para CI para no contaminar el llavero del sistema del agente. El indicador -T /usr/bin/codesign permite que la utilidad codesign acceda a las claves sin solicitar contraseña — de lo contrario, la firma automática en el pipeline se interrumpiría con un diálogo. El comando set-key-partition-list es necesario para la compatibilidad con los requisitos de firma de código de macOS en modo automatizado.
El error más común es “No signing certificate found” al compilar en Xcode. Ocurre cuando Keychain carece de un certificado con clave privada que coincida con el tipo de compilación seleccionado. Solución: verifica en Keychain Access si el certificado existe, descárgalo de Apple Developer Portal e instálalo. Si la clave privada se perdió (ordenador antiguo, reinstalación del sistema), es necesario revocar el certificado antiguo y emitir uno nuevo.
El error “Valid signing certificate not found” en CI/CD ocurre si el agente no tiene instalados los certificados intermedios de Apple (Apple Worldwide Developer Relations CA). Apple incluye los certificados intermedios en la cadena al descargar el certificado del desarrollador, pero pueden faltar al exportar manualmente .p12. Solución — descarga los certificados intermedios del sitio de Apple Certificate Authority e instálalos en el llavero del agente CI.
Un problema de certificado vencido se manifiesta con el error “This certificate has an invalid issuer” al firmar. Apple Developer Portal muestra el estado de cada certificado y su fecha de vencimiento. Si una aplicación ya está publicada en App Store con un certificado vencido, continúa funcionando — App Store utiliza su propio certificado de Apple para la distribución. Sin embargo, para subir una nueva compilación se necesita un certificado Distribution válido. Fastlane incluye el comando cert para crear y renovar certificados automáticamente.
Preguntas frecuentes
No, para iOS y macOS se emiten tipos diferentes de certificados — iOS App Development y Mac Development. El certificado Apple Distribution también está separado por plataforma. Al crear un certificado en Apple Developer Portal, debes especificar la plataforma objetivo — no existe un certificado universal para todas las plataformas.
Debes revocar el certificado antiguo en Apple Developer Portal a través de Certificates, Identifiers & Profiles. Luego crear una nueva CSR mediante Keychain Access y emitir un nuevo certificado. Todas las aplicaciones firmadas con el certificado antiguo necesitarán ser refirmadas y subidas nuevamente a App Store si se desea publicar una actualización.
Una cuenta de Apple Developer Program permite un máximo de dos certificados Distribution y un número ilimitado de certificados Development simultáneamente. Las cuentas Enterprise tienen límites separados. Si se alcanza el límite de certificados Distribution, es necesario revocar uno de los existentes antes de crear uno nuevo.
Usa la utilidad security: security find-identity -v -p basic lista todos los certificados en el llavero con fechas de vencimiento. Para un certificado específico, indica su hash SHA-1: security find-certificate -c “Developer” -p | openssl x509 -noout -enddate.
Sí, los certificados están vinculados a una cuenta de Apple Developer específica (Team ID). Al cambiar de cuenta, los certificados antiguos se vuelven inválidos para el nuevo Team ID. Xcode, al cambiar de cuenta en Accounts Preferences, solicita automáticamente la creación de nuevos certificados para el nuevo equipo.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también