Custom Certificates
Añade certificados raíz, de servidor y de cliente personalizados a Proxyman para SSL pinning y autenticación mutua TLS, y genera un certificado raíz autofirmado que Apple considera de confianza.
1. ¿Qué es?
Proxyman admite Root Certificates, Server Certificates y Client Certificates personalizados. Puedes añadir tus propios certificados, y Proxyman los usa para establecer la conexión SSL entre tus clientes, tus servidores y la app de Proxyman.
| Tipo de Custom Certificate | Uso | Cómo lo usa Proxyman |
|---|---|---|
| Server Certificate | Para interceptar tráfico HTTPS de clientes que usan SSL pinning | Usa este certificado para el handshake SSL con tus clientes |
| Client Certificate | Para interceptar tráfico HTTPS de clientes que usan autenticación mutua | Usa este certificado para el handshake SSL con un servidor concreto |
| Root Certificate | Para interceptar tráfico HTTPS de clientes y servidores sin usar los certificados locales de Proxyman | Handshake SSL tanto para clientes como para servidores |

Pestaña Root Certificate
El certificado raíz de Proxyman se genera localmente en tu Mac. También puedes generar tu propio certificado raíz y añadirlo a Proxyman. Consulta cómo generar un certificado raíz autofirmado.
2. Formatos de certificado
Proxyman acepta los siguientes formatos:
| Custom Certificate | PEM or DER | PKCS #12 (p12) |
|---|---|---|
| Root Certificate | No compatible | Compatible |
| Client Certificate | Compatible | Compatible |
| Server Certificate | Compatible | Compatible |
- PKCS #12 (p12).
- Archivo de clave privada y certificado en formato PEM o DER.
- Proxyman detecta automáticamente el formato del archivo de clave privada y certificado (PEM o DER).
- Proxyman te pide la contraseña al importar un archivo de clave privada cifrada o PKCS #12.
- Todas las contraseñas se almacenan de forma segura en el Keychain de Proxyman.
Si tus certificados están en un formato que Proxyman no admite, conviértelos a p12 o PEM/DER antes de importarlos.
3. Requisitos de certificado en macOS 10.15+ e iOS 13+
Si usas un certificado raíz o de servidor personalizado en macOS 10.15 o posterior, o en iOS 13 o posterior, el handshake SSL puede fallar en Safari o en los dispositivos iOS a menos que el certificado cumpla estos requisitos:
- Las claves RSA deben tener un tamaño de 2048 bits o más
- El algoritmo hash debe pertenecer a la familia SHA-2
- El nombre DNS del servidor debe estar en Subject Alternative Name (SAN). Common Name (CN) ya no se considera de confianza
- El certificado debe ser válido (la fecha actual debe estar entre las fechas Not Before y Not After)
- Los certificados de servidor TLS deben contener una extensión ExtendedKeyUsage (EKU) con el OID id-kp-serverAuth.
Más información: Requisitos para certificados de confianza en iOS 13 y macOS 10.15
Si esto resulta demasiado complicado, deja que Proxyman lo haga por ti. Abre el menú Certificate -> Install Certificate on this Mac… y selecciona la pestaña Automatic.
4. Problemas comunes
| Problema | Solución |
|---|---|
| La clave privada y el certificado no coinciden | Prueba con otros certificados y claves privadas y asegúrate de que coincidan |
| Aparece un error de SSL Handshake con certificados personalizados |
|
| No se pudo importar el certificado por una contraseña no válida | Pide a tu líder de equipo la contraseña correcta para abrir el archivo de clave privada cifrada o P12 |
5. Cómo usarlo
- Abre el menú Certificate -> Add Custom Certificates…
6. Cómo generar certificados autofirmados para un certificado raíz personalizado que cumpla los nuevos requisitos de seguridad de Apple
Debido a los requisitos de Apple desde iOS 13 y macOS Catalina (10.15), necesitas una configuración adicional para generar un certificado autofirmado que funcione.
Sigue estos pasos:
- Crea un archivo
cert.configen la carpeta Escritorio (~/Desktop)
[ 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
distinguished_name = req_distinguished_name
[ req_distinguished_name ]
C=US
L=US
O=Proxyman LLC
CN=proxyman.dev
OU=Proxyman
- Actualiza los valores de los parámetros C, L, O, CN y OU.
2. Genera una clave RSA en la app Terminal. (Sustituye your_password por cualquier contraseña, por ejemplo 123456)
cd ~/Desktop
openssl genrsa -aes256 -passout pass:your_password -out key.pem 2048
3. Genera el certificado autofirmado y la clave privada. (Sustituye your_password por la contraseña del paso 2)
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 a formato p12. (Sustituye your_password por la contraseña del paso 2)
openssl pkcs12 -export -legacy -out root-ca.p12 -in root-ca.pem -inkey key.pem -passin pass:your_password -passout pass:your_password
5. Ya tienes el archivo root-ca.p12. Continúa con el siguiente paso.
Si no puedes importar tu certificado personalizado en macOS 14 (OpenSSL v3) o posterior, usa la opción `-legacy` en el paso 4.
Referencia: MAC verification failed during PKCS12 import (Stack Overflow)
7. Importar como certificado raíz personalizado
- Abre el menú Certificate -> Add Custom Certificates… y selecciona la pestaña Root Certificate
- Haz clic en el botón Import -> Import P12...
- Selecciona el archivo root-ca.p12 e introduce la contraseña.
- Confía en tu certificado personalizado desde la app Keychain Access (Acceso a Llaveros):
- Abre la app Keychain Access
- Busca el certificado que has añadido. Su nombre puede ser el Common Name (CN) del certificado
- Haz doble clic para abrirlo y selecciona Always Trust
- Cierra la ventana para guardar el cambio
5. Comprueba que aparece la marca verde, lo que significa que el certificado está instalado y es de confianza.
8. Importar como certificado de servidor o de cliente
Para los certificados personalizados de servidor o de cliente no generes un certificado autofirmado. Pide a tu compañero de equipo o a tu líder de equipo el certificado que usa tu empresa. Puede estar en formato DER/PEM o P12.
Después, impórtalo en las pestañas Server Certificates o Client Certificates de la ventana Custom Certificates.
No necesitas confiar en el certificado en el System Keychain, porque no es un certificado raíz.