Skip to content

🔐 Certificate Requirements

📋 Certificados Necesarios

╔═══════════════════════════════════════════════════════════════════════╗
║ Plataforma │ Tipo                 │ Por qué                          ║
╠════════════╪══════════════════════╪══════════════════════════════════╣
║ Windows    │ EV Code Signing      │ SmartScreen bypass, max trust   ║
║ macOS      │ Developer ID App     │ Notarization, Gatekeeper pass   ║
║ macOS      │ Developer ID Install │ Installer packages              ║
║ Linux      │ GPG Key              │ Repository signing              ║
╚═══════════════════════════════════════════════════════════════════════╝

💰 Costos Anuales

  • Windows EV: ~$300-500/año
  • Apple Developer Program: $99/año
  • GPG: Gratis

📅 Ciclo de Vida

1. Purchase → 2. Import → 3. Configure → 4. Use → 5. Renew (90 días antes)

⚠️ CRÍTICO

NUNCA en Git: - *.p12, *.pfx (private keys) - *.key files - Passwords - Passphrases - Token secrets

SÍ en Git: - *_public.cer (public certificates) - Documentation - Scripts (sin secrets) - Renewal schedules

🔐 Windows EV Code Signing

Características

  • Extended Validation certificate
  • Hardware token required (USB)
  • Immediate SmartScreen reputation
  • Válido 1-3 años

Vendors Recomendados

  • DigiCert: Industry standard, best support
  • GlobalSign: Good alternative
  • Sectigo: Budget option

Requisitos

  • Validación de empresa (DUNS, artículos de incorporación)
  • USB token (SafeNet, YubiKey)
  • Instalación en build machine

Formato

  • .pfx file protegido con password
  • Almacenado en hardware token
  • Timestamp service para validez post-expiración

🍎 Apple Developer Certificates

Developer ID Application

  • Firma apps distribuidas fuera del Mac App Store
  • Requiere Apple Developer Program membership
  • Permite notarization

Developer ID Installer

  • Firma .pkg installers
  • Mismo account que App certificate
  • Necesario para distribución tradicional

Provisioning Profiles

  • Para testing en devices específicos
  • Renew cada año automáticamente
  • Gestión vía Xcode o portal web

Proceso de Obtención

  1. Join Apple Developer Program ($99/año)
  2. Generate CSR en Keychain Access
  3. Request certificates en developer portal
  4. Download e instalar en Keychain
  5. Configure en Xcode build settings

🐧 Linux GPG Signing

Propósito

  • Firmar packages (.deb, .rpm)
  • Firmar repository metadata
  • Verificar integridad de releases

Generación

gpg --full-generate-key
# RSA 4096 bits
# No expira o 2-5 años
# Nombre real + email corporativo

Distribución

  • Public key en keyservers
  • Incluir en package repositories
  • Documentar fingerprint públicamente

🔄 Backup Strategy

Encrypted Backup

  • Password-protected archive
  • Stored en vault seguro (1Password, Azure Key Vault)
  • Access list limitado

Recovery Plan

  • Documentar quién tiene acceso
  • Procedure para emergency access
  • Test recovery process anualmente

📊 Certificate Inventory

Tracking Necesario

Campo Descripción
Type EV Code Signing, Developer ID, etc.
Vendor DigiCert, Apple, etc.
Purchase Date Cuándo se compró
Expiration Date Cuándo expira
Responsible Quién gestiona
Storage Location Dónde está almacenado
Renewal Status Pending, Completed, etc.

🛡️ Security Best Practices

Storage

  • Hardware tokens cuando posible (Windows EV)
  • Encrypted vaults para backups
  • Access control estricto
  • Audit log de uso

Usage

  • Signing solo en build machines autorizadas
  • No export de private keys
  • Automated signing en CI/CD
  • Timestamp all signatures

Monitoring

  • Alert 90d antes de expiración
  • Verify signatures regularmente
  • Check revocation status
  • Review access logs

🚨 Emergency Procedures

Certificate Compromised

  1. Revoke inmediatamente
  2. Notify vendor
  3. Generate new certificate
  4. Re-sign all releases
  5. Notify users si necesario

Certificate Expired

  1. Emergency purchase/renewal
  2. Fast-track validation si posible
  3. Communicate con users
  4. Re-sign affected builds

Lost Access

  1. Recovery de backup
  2. Re-issue si no recoverable
  3. Update all systems
  4. Document incident

📝 Compliance

Record Keeping

  • Certificate purchase records
  • Validation documents
  • Renewal history
  • Access logs

Auditing

  • Annual review de certificates
  • Verification de security practices
  • Update procedures según necesario
  • Training para team members