¿Cómo generar y usar certificados raíz personalizados en Proxyman?
Este mini artículo te explica cómo generar manualmente certificados autofirmados que cumplan con los nuevos requisitos de seguridad de Apple (iOS 13+ y Catalina) y luego usarlos como certificado raíz personalizado.
1. ¿Cuáles son los nuevos requisitos de seguridad de Apple?
Desde iOS 13 y macOS 10.15 (Catalina), todos los certificados deben cumplir con los nuevos requisitos de seguridad de Apple para funcionar correctamente.
En resumen:
- La clave RSA debe tener un tamaño mayor de 2048 bits
- El algoritmo hash pertenece a la familia SHA-2
- Los certificados firmados con SHA-1 ya no son de confianza para TLS.
- El nombre DNS del servidor debe aparecer en Subject Alternative Name. Common Name ya no es de confianza
- Certificado válido (la fecha actual debe estar entre Not Before y Not After)
- El periodo de validez es de 825 días o menos
- Los certificados de servidor TLS deben contener la extensión ExtendedKeyUsage (EKU) con el OID id-kp-serverAuth.
Más información en: https://support.apple.com/en-us/HT210176
2. ¿Cómo generar un certificado autofirmado?
1/ Prepara el archivo cert.config en la carpeta del Escritorio
[ ca ]
default_ca = CA_default
[ CA_default ]
default_md = sha256
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = critical,CA:true
keyUsage=critical,keyCertSign
extendedKeyUsage = serverAuth,clientAuth
[ req ]
prompt = no
distinguishedname = reqdistinguished_name
[ reqdistinguishedname ]
C=US
L=US
O=Self-signed Certificate
CN=my.server.dev
OU=Self-signed Certificate
- Actualiza los valores de C, L, O, CN y OU.
2/ Genera la clave RSA en la app Terminal. (Asegúrate de reemplazar your_password por tu contraseña real)
cd ~/Desktop
openssl genrsa -aes256 -passout pass:your_password -out key.pem 2048
3/ Genera el certificado autofirmado y la clave privada. (Asegúrate de reemplazar your_password por tu contraseña real)
openssl req -x509 -new -nodes -passin pass:your_password -config cert.config -key key.pem -sha256 -extensions v3_ca -days 825 -out root-ca.pem
4/ Convierte el certificado al formato p12. (Asegúrate de reemplazar your_password por tu contraseña real)
openssl pkcs12 -export -out root-ca.p12 -in root-ca.pem -inkey key.pem -passin pass:your_password -passout pass:your_password
5/ Al final tendrás el archivo root-ca.p12 y podrás pasar al siguiente paso
3. Úsalo como certificado personalizado en Proxyman
- Ve al menú Certificate -> Custom Certificate -> selecciona la pestaña Root Certificate
- Haz clic en el botón Import -> P12
- Selecciona root-ca.p12 e introduce la contraseña
- Confía en tu certificado personalizado en Acceso a Llaveros (Keychain Access):
- Abre Acceso a Llaveros
- Busca el certificado que añadiste. Su nombre puede ser el nombre común (CN) del certificado
- Haz doble clic para abrirlo y selecciona Always Trust
- Haz clic en "X" y guarda los cambios

Verifica que aparezca la marca verde que indica que el certificado está instalado y es de confianza.

Consulta la documentación de Custom Certificate.
Mantén la clave privada en secreto
En la mayoría de las pruebas, el certificado que genera Proxyman es la opción más sencilla. Usa un certificado raíz personalizado solo cuando tu equipo tenga una necesidad clara. Nunca subas el archivo P12, la contraseña ni la clave privada al control de versiones, y no los envíes por chat ni por correo. Elimina el certificado de los almacenes de confianza cuando el proyecto de pruebas ya no lo necesite.
Proxyman es una app de macOS de alto rendimiento que permite a los desarrolladores capturar solicitudes HTTP/HTTPS de apps y dominios en dispositivos iOS, el simulador de iOS y dispositivos Android.
Descárgala en https://proxyman.com

