Saltar al contenido principal

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 CertificateUsoCómo lo usa Proxyman
Server CertificatePara interceptar tráfico HTTPS de clientes que usan SSL pinningUsa este certificado para el handshake SSL con tus clientes
Client CertificatePara interceptar tráfico HTTPS de clientes que usan autenticación mutuaUsa este certificado para el handshake SSL con un servidor concreto
Root CertificatePara interceptar tráfico HTTPS de clientes y servidores sin usar los certificados locales de ProxymanHandshake SSL tanto para clientes como para servidores
Ventana Custom Certificates de Proxyman en la pestaña Root Certificate, con el certificado CA de Proxyman instalado y de confianza (Installed & Trusted)

Pestaña Root Certificate

información

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 CertificatePEM or DERPKCS #12 (p12)
Root CertificateNo compatibleCompatible
Client CertificateCompatibleCompatible
Server CertificateCompatibleCompatible
  • PKCS #12 (p12).
  • Archivo de clave privada y certificado en formato PEM o DER.
información
  • 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.
información

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

información

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​

ProblemaSolución
La clave privada y el certificado no coincidenPrueba con otros certificados y claves privadas y asegúrate de que coincidan
Aparece un error de SSL Handshake con certificados personalizados
  • Intenta añadir el certificado personalizado al System Keychain y márcalo como de confianza
  • El certificado no cumple los requisitos de macOS => Lee la sección 3
  • Comprueba la fecha de caducidad del certificado
No se pudo importar el certificado por una contraseña no válidaPide 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:

  1. Crea un archivo cert.config en 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.

información

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​

  1. Abre el menú Certificate -> Add Custom Certificates… y selecciona la pestaña Root Certificate
  2. Haz clic en el botón Import -> Import P12...
  3. Selecciona el archivo root-ca.p12 e introduce la contraseña.
  4. 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
Ventana del certificado en macOS Keychain Access con Trust configurado como Always Trust

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.

Hoja de importación de certificados de Proxyman con un archivo de certificado PEM y un archivo de clave privada seleccionados
información

No necesitas confiar en el certificado en el System Keychain, porque no es un certificado raíz.

Más información​