⚙️ Configuración TÉCNICA avanzada: Los secretos que solo conocen los expertos
Guía técnica oficial FNMT sobre formatos de certificado (.pfx, .p12, .cer), OIDs, validez temporal, números de serie y aspectos técnicos avanzados.
Configuración técnica avanzada del certificado digital: formatos, OIDs y validez
¿Necesitas entender los aspectos técnicos de tu certificado digital? Esta guía oficial de la FNMT explica formatos, identificadores, validez y configuración avanzada.
🎯 Para desarrolladores y técnicos
- 🔍 Analizar estructuras de certificados - � Convertir entre formatos (.pfx, .p12, .cer) - 📊 Extraer información técnica (OIDs, validez) - ⚙️ Configurar sistemas empresariales - 🛠️ Solucionar problemas técnicos avanzados
Esta guía está dirigida a administradores de sistemas, desarrolladores y personal técnico. Si buscas información básica, consulta nuestras guías para usuarios.
Formatos de archivo de certificados
Formato | Extensión | Contiene | Uso principal | Seguridad |
---|---|---|---|---|
PKCS#12 | .pfx / .p12 | Clave privada + pública | Backup e instalación | 🔐 Alta (contraseña) |
X.509 | .cer / .crt | Solo clave pública | Verificación de firmas | 🔓 Pública |
DER | .der | Binario X.509 | Sistemas automatizados | 🔓 Pública |
PEM | .pem | Texto X.509 | Servidores Unix/Linux | 🔓 Pública |
JKS | .jks | Java KeyStore | Aplicaciones Java | 🔐 Alta (contraseña) |
📄 PKCS#12 (.pfx / .p12) - Formato completo
🔑 Lo que necesitas saber de PKCS#12
- ✅ Contiene TODO → Clave privada + pública + cadena de certificados - 🔒 Protegido → Siempre requiere contraseña - 📦 Portátil → Perfecto para transferir entre sistemas - 🏆 Estándar → Compatible con todos los sistemas
Estructura interna técnica:
archivo.pfx:
├── Certificado de usuario (X.509)
├── Clave privada RSA (cifrada AES/3DES)
├── Certificado AC FNMT Usuarios
├── Certificado AC Raíz FNMT-RCM
├── Metadatos de validez
└── Información de algoritmos
Características técnicas:
- Cifrado: AES-256 o 3DES
- Integridad: HMAC-SHA256
- Formato: ASN.1 DER
- Estándar: RFC 7292
📄 X.509 (.cer / .crt) - Solo parte pública
🌐 Certificados públicos X.509
- ❌ Sin clave privada → Solo para verificación - ✅ Compartible → Se puede enviar por email - 🔍 Verificación → Para validar firmas de otros - 📈 Ligero → Tamaño muy pequeño
Usos técnicos específicos:
- Configurar cadenas de confianza
- Validar firmas digitales de terceros
- Intercambio de claves públicas
- Configuración de servidores web
Conversión entre formatos
Extraer certificado público de .pfx
Con OpenSSL (Linux/Mac):
# Extraer solo el certificado público
openssl pkcs12 -in certificado.pfx -clcerts -nokeys -out certificado.cer
# Extraer en formato PEM
openssl pkcs12 -in certificado.pfx -clcerts -nokeys -nodes -out certificado.pem
Con PowerShell (Windows):
# Cargar el certificado PKCS#12
$pfx = Get-PfxCertificate -FilePath "certificado.pfx"
# Exportar solo la parte pública
$cert = $pfx.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Cert)
[System.IO.File]::WriteAllBytes("certificado.cer", $cert)
Convertir PFX a formatos Java
Crear Java KeyStore (JKS):
# Convertir PFX a JKS
keytool -importkeystore \
-srckeystore certificado.pfx -srcstoretype PKCS12 \
-destkeystore certificado.jks -deststoretype JKS
Crear PKCS#8 para Java:
# Extraer clave privada en formato PKCS#8
openssl pkcs12 -in certificado.pfx -nocerts -nodes | \
openssl pkcs8 -topk8 -inform PEM -outform DER -out clave_privada.pk8 -nocrypt
Información técnica de certificados FNMT
� OIDs (Object Identifiers) oficiales
Componente | OID | Descripción técnica |
---|---|---|
AC Raíz FNMT-RCM | 1.3.6.1.4.1.8571.2.1.1 | Autoridad certificadora raíz |
AC FNMT Usuarios | 1.3.6.1.4.1.8571.2.1.2 | Autoridad para personas físicas |
AC Componentes | 1.3.6.1.4.1.8571.2.1.3 | Autoridad para componentes |
AC Representación | 1.3.6.1.4.1.8571.2.1.4 | Autoridad para entidades |
Política de certificación | 1.3.6.1.4.1.8571.2.2 | Política QCP+ (cualificada) |
Número de serie FNMT | 1.3.6.1.4.1.8571.3.1 | Identificador único FNMT |
🔍 Análisis técnico de certificados
Extraer información técnica completa
Con OpenSSL:
# Información completa del certificado
openssl x509 -in certificado.cer -text -noout
# Verificar cadena de certificación
openssl verify -CAfile ac_raiz_fnmt.cer -untrusted ac_usuarios_fnmt.cer certificado.cer
# Extraer solo datos específicos
openssl x509 -in certificado.cer -noout -subject -issuer -dates -serial
Salida típica:
Subject: CN=NOMBRE APELLIDO1 APELLIDO2 - 12345678Z,
serialNumber=IDCES-12345678Z,
givenName=NOMBRE,
surname=APELLIDO1 APELLIDO2,
O=FNMT-RCM,
C=ES
Issuer: CN=AC FNMT Usuarios,
OU=Ceres,
O=FNMT-RCM,
C=ES
Serial Number: 500a1b2c3d4e5f67 (hex)
Not Before: Jan 1 09:00:00 2024 GMT
Not After: Jan 1 09:00:00 2028 GMT
Con PowerShell (Windows)
$cert = Get-PfxCertificate -FilePath “certificado.pfx” Export-Certificate -Cert $cert -FilePath “certificado.cer”
#### Verificar contenido de .pfx:
```bash
# Listar contenido
openssl pkcs12 -in certificado.pfx -info -noout
# Extraer certificado
openssl pkcs12 -in certificado.pfx -clcerts -nokeys -out cert.pem
# Extraer clave privada
openssl pkcs12 -in certificado.pfx -nocerts -nodes -out key.pem
Identificadores OID (Object Identifier)
🔢 ¿Qué son los OIDs?
Los OIDs son identificadores únicos que definen:
- Políticas de certificación
- Usos permitidos del certificado
- Algoritmos criptográficos
- Extensiones específicas
📋 OIDs principales de la FNMT
Certificados de Persona Física:
Política de Certificación:
- 1.3.6.1.4.1.18332.1.1.1.1 (Ciudadano)
- 1.3.6.1.4.1.18332.1.1.1.2 (Ciudadano cualificado)
Uso de clave:
- Autenticación cliente
- Firma digital
- No repudio
Certificados de Representación:
Política de Certificación:
- 1.3.6.1.4.1.18332.1.1.1.3 (Representante)
- 1.3.6.1.4.1.18332.1.1.1.4 (Representante cualificado)
Capacidades adicionales:
- Representación legal
- Firma en nombre de terceros
🔍 Verificar OIDs de tu certificado
En Windows:
- Doble clic en certificado
- Detalles > Directivas de certificado
- Ver identificadores OID
Con OpenSSL:
# Mostrar todos los OIDs
openssl x509 -in certificado.cer -text -noout
# Filtrar políticas específicas
openssl x509 -in certificado.cer -text -noout | grep -A 10 "Certificate Policies"
En Firefox:
- Ver certificado > Detalles
- Buscar “Directivas de certificado”
- Expandir para ver OIDs
Información del número de serie
🔢 ¿Qué es el número de serie?
El número de serie es un identificador único asignado por la FNMT a cada certificado emitido.
📍 Localizar número de serie
En el certificado (Windows):
- Doble clic en certificado instalado
- General > Número de serie
- Formato: Hexadecimal (ej: 4A 2B 1C 3D…)
En archivo .pfx:
# Con OpenSSL
openssl pkcs12 -in certificado.pfx -clcerts -nokeys | openssl x509 -serial -noout
# Resultado ejemplo: serial=4A2B1C3D4E5F6789
En el navegador:
- Acceder a sitio que usa certificado
- Ver certificado en la barra de direcciones
- Detalles > Número de serie
🔍 Usos del número de serie
Para identificación:
- Soporte técnico de la FNMT
- Revocación específica
- Auditoría de certificados
- Troubleshooting técnico
Para verificación:
- Comprobar estado en CRL
- Validar autenticidad
- Seguimiento de uso
Período de validez del certificado
📅 Certificados de Persona Física
Duración estándar:
- ✅ 4 años desde la fecha de emisión
- ✅ Renovable hasta 6 meses antes
- ✅ No prorrogable tras caducidad
Fechas importantes:
Ejemplo de certificado emitido el 15/01/2024:
├── Válido desde: 15/01/2024 10:30:00 UTC
├── Válido hasta: 15/01/2028 10:30:00 UTC
├── Renovable desde: 15/07/2027
└── Caducidad final: 15/01/2028
🏢 Certificados de Representación
Duración específica:
- Misma duración que persona física (4 años)
- Vinculado a la vigencia del cargo
- Revocable si cesa la representación
🕐 Verificación de fechas
Comprobar validez actual:
# Con OpenSSL
openssl x509 -in certificado.cer -dates -noout
# Resultado:
# notBefore=Jan 15 10:30:00 2024 GMT
# notAfter=Jan 15 10:30:00 2028 GMT
En Windows:
- certmgr.msc > Personal > Certificados
- Ver columna “Fecha de expiración”
- Ordenar por fecha para próximos a caducar
Script PowerShell para monitoreo:
# Verificar certificados próximos a caducar
Get-ChildItem Cert:\CurrentUser\My | Where-Object {
$_.Subject -like "*FNMT*" -and
$_.NotAfter -lt (Get-Date).AddMonths(3)
} | Select-Object Subject, NotAfter, @{
Name="DaysUntilExpiry"
Expression={($_.NotAfter - (Get-Date)).Days}
}
Algoritmos criptográficos utilizados
🔐 Algoritmos estándar FNMT
Firma digital:
- RSA con SHA-256 (estándar actual)
- Tamaño de clave: 2048 bits mínimo
- Hash: SHA-256 (obsoleto: SHA-1)
Cifrado:
- RSA 2048 bits
- Compatible con estándares PKCS#1
- Algoritmos de padding seguros
🔍 Verificar algoritmos de tu certificado
# Información completa del certificado
openssl x509 -in certificado.cer -text -noout | grep -E "(Algorithm|Public Key)"
# Resultado ejemplo:
# Signature Algorithm: sha256WithRSAEncryption
# Public Key Algorithm: rsaEncryption
# RSA Public-Key: (2048 bit)
⚠️ Algoritmos obsoletos
Ya no se usan:
- ❌ SHA-1 (inseguro desde 2017)
- ❌ RSA 1024 bits (insuficiente)
- ❌ MD5 (comprometido)
Migración recomendada:
- ✅ Renovar certificados con SHA-1
- ✅ Verificar algoritmos actuales
- ✅ Planificar actualizaciones
Extensiones del certificado
📝 Extensiones estándar
Key Usage (Uso de clave):
- Digital Signature (Firma digital)
- Key Encipherment (Cifrado de clave)
- Non Repudiation (No repudio)
Extended Key Usage:
- Client Authentication (1.3.6.1.5.5.7.3.2)
- Email Protection (1.3.6.1.5.5.7.3.4)
- Code Signing (1.3.6.1.5.5.7.3.3) [solo algunos]
Subject Alternative Name:
- Email: usuario@email.com
- RFC822 Name: usuario@email.com
🔍 Interpretar extensiones
Verificar capacidades:
# Mostrar extensiones
openssl x509 -in certificado.cer -text -noout | grep -A 20 "X509v3 extensions"
# Buscar usos específicos
openssl x509 -in certificado.cer -text -noout | grep -A 5 "Key Usage"
Extensiones críticas:
- Basic Constraints: Define si es CA
- Key Usage: Usos permitidos de la clave
- Certificate Policies: Políticas aplicables
Validación y revocación
🔍 Lista de Certificados Revocados (CRL)
URLs oficiales FNMT:
CRL Principal:
http://www.cert.fnmt.es/crlsac/crlac.crl
CRL Ciudadanos:
http://www.cert.fnmt.es/crlsac/ciudadanos.crl
CRL Componentes:
http://www.cert.fnmt.es/crlsac/componentes.crl
Verificar estado de revocación:
# Descargar CRL
wget http://www.cert.fnmt.es/crlsac/crlac.crl
# Verificar certificado contra CRL
openssl crl -in crlac.crl -text -noout | grep -A 2 "NUMERO_SERIE"
🌐 OCSP (Online Certificate Status Protocol)
Servidor OCSP FNMT:
URL: http://ocsp.cert.fnmt.es
Método: GET/POST
Respuesta: Good/Revoked/Unknown
Verificación OCSP:
# Verificar estado online
openssl ocsp -issuer ca-cert.pem -cert certificado.pem -url http://ocsp.cert.fnmt.es -resp_text
Configuración de almacenes de certificados
🖥️ Windows Certificate Store
Ubicaciones estándar:
Personal (My):
- Certificados del usuario actual
- Ruta: Cert:\CurrentUser\My
Trusted Root (Root):
- Autoridades raíz confiables
- Ruta: Cert:\LocalMachine\Root
Intermediate CA (CA):
- Autoridades intermedias
- Ruta: Cert:\LocalMachine\CA
Gestión con PowerShell:
# Listar certificados personales
Get-ChildItem Cert:\CurrentUser\My
# Importar certificado
Import-PfxCertificate -FilePath "cert.pfx" -CertStoreLocation Cert:\CurrentUser\My
# Exportar certificado
Export-PfxCertificate -Cert $cert -FilePath "backup.pfx" -Password $pwd
🦊 Firefox NSS Database
Estructura de NSS:
~/.mozilla/firefox/profile/
├── cert9.db (certificados)
├── key4.db (claves privadas)
└── pkcs11.txt (módulos)
Comandos NSS:
# Listar certificados
certutil -L -d ~/.mozilla/firefox/profile
# Importar .p12
pk12util -i certificado.p12 -d ~/.mozilla/firefox/profile
# Verificar certificado
certutil -V -n "Nombre Certificado" -u V -d ~/.mozilla/firefox/profile
Configuración de servidores web
🌐 Apache HTTP Server
Configuración SSL:
SSLEngine on
SSLCertificateFile /path/to/server.crt
SSLCertificateKeyFile /path/to/server.key
SSLCACertificateFile /path/to/fnmt-ca.crt
# Verificación de certificados cliente
SSLVerifyClient require
SSLVerifyDepth 3
SSLCACertificateFile /path/to/fnmt-client-ca.crt
🔧 Nginx
Configuración SSL:
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
ssl_client_certificate /path/to/fnmt-ca.crt;
ssl_verify_client on;
ssl_verify_depth 3;
☁️ IIS (Internet Information Services)
Configuración cliente:
- IIS Manager > SSL Settings
- Require SSL ✅
- Client certificates: Require
- Import FNMT CA certificates
Troubleshooting técnico avanzado
🔍 Diagnóstico de certificados
Script de diagnóstico completo:
#!/bin/bash
# Diagnóstico completo de certificado
CERT_FILE="$1"
echo "=== INFORMACIÓN BÁSICA ==="
openssl x509 -in "$CERT_FILE" -subject -issuer -dates -noout
echo -e "\n=== ALGORITMOS ==="
openssl x509 -in "$CERT_FILE" -text -noout | grep -E "(Algorithm|Public Key)"
echo -e "\n=== EXTENSIONES ==="
openssl x509 -in "$CERT_FILE" -text -noout | grep -A 20 "X509v3 extensions"
echo -e "\n=== VERIFICACIÓN ==="
openssl verify -CAfile fnmt-ca.crt "$CERT_FILE"
Verificación de cadena de certificados:
# Verificar cadena completa
openssl verify -CAfile root-ca.crt -untrusted intermediate-ca.crt certificado.crt
# Mostrar cadena
openssl crl2pkcs7 -nocrl -certfile certificado.crt | openssl pkcs7 -print_certs -text -noout
🛠️ Problemas comunes técnicos
Error: “Certificate chain incomplete”
Solución:
# Crear cadena completa
cat certificado.crt intermediate-ca.crt root-ca.crt > certificado-completo.crt
Error: “Wrong algorithm”
Verificación:
# Comprobar algoritmo
openssl x509 -in certificado.crt -text -noout | grep "Signature Algorithm"
# Si es SHA-1, renovar certificado
Error: “Clock skew”
Solución:
# Sincronizar reloj del sistema
ntpdate -s time.nist.gov # Linux
w32tm /resync # Windows
Herramientas de desarrollo
🔧 OpenSSL (multiplataforma)
Instalación:
# Ubuntu/Debian
sudo apt install openssl
# CentOS/RHEL
sudo yum install openssl
# macOS
brew install openssl
# Windows
# Descargar desde https://slproweb.com/products/Win32OpenSSL.html
Comandos útiles:
# Generar CSR
openssl req -new -key private.key -out request.csr
# Convertir formatos
openssl pkcs12 -export -in cert.crt -inkey private.key -out certificate.pfx
# Verificar conexión SSL
openssl s_client -connect servidor:443 -servername servidor
🔍 Herramientas de análisis
SSL Labs (online):
- URL: https://www.ssllabs.com/ssltest/
- Análisis completo de configuración SSL
- Verificación de certificados
Qualys SSL Client Test:
- Verificación de configuración cliente
- Compatibilidad con navegadores
- Análisis de vulnerabilidades
Conclusión
La configuración técnica avanzada de certificados digitales requiere comprensión de:
Aspectos clave:
- ✅ Formatos y sus diferencias (.pfx vs .cer)
- ✅ OIDs y políticas de certificación
- ✅ Algoritmos criptográficos actuales
- ✅ Validación y revocación (CRL/OCSP)
- ✅ Herramientas de diagnóstico
Mejores prácticas técnicas:
- 🔧 Monitorea caducidades automáticamente
- 🔒 Usa algoritmos actuales (SHA-256, RSA 2048+)
- 📊 Verifica estados de revocación
- 🛠️ Mantén herramientas actualizadas
- 📋 Documenta configuraciones
¿Necesitas ayuda con configuraciones específicas? Consulta la documentación técnica oficial de la FNMT o contacta con su soporte técnico especializado.
Artículos relacionados
📋 ¿Qué documentos necesitas EXACTAMENTE? La lista que evitará que vayas 2 veces
Guía completa sobre qué documentos necesitas para obtener tu certificado digital según la FNMT: españoles, extranjeros, menores de edad y casos especiales.
🚨 Los 10 errores MÁS FRUSTRANTES del certificado digital (y cómo solucionarlos YA)
Guía oficial con las soluciones a los errores más frecuentes del certificado digital según la FNMT: clave privada no encontrada, certificado no válido y más.
🔄 ¿Tienes MÁS DE UN certificado? Cómo gestionarlos sin volverte loco (Pro tips)
Guía oficial FNMT para gestionar múltiples certificados digitales: instalación en varios navegadores, copias de seguridad, eliminación y mejores prácticas.
🔧 Firefox AVANZADO: Configuración PRO para empresas y usuarios expertos
Guía avanzada para configurar Firefox con AutoFirma, gestionar múltiples perfiles, contraseña maestra y configuraciones empresariales según FNMT.