- Problema: utilizar una autoridad de certificación que no es de confianza o un certificado autofirmado
Solución: utilice un certificado SSL emitido por una autoridad de certificación pública para el servidor de devolución de llamada webhook.
Novedades
Introducción
Administrar
Enviar, firmar y administrar acuerdos
Capacidades y flujos de trabajo de acuerdos avanzados
Integrar con otros productos
Acrobat Sign Desarrolladores
Soporte y solución de problemas
SSL bidireccional, a menudo llamado SSL del lado del cliente o TLS mutuo, es un modo de SSL en el que tanto el servidor como el cliente (explorador web) presentan certificados para identificarse.
Los administradores de cuentas pueden configurar un certificado del lado del cliente en la página de Configuración de seguridad.
Acrobat Sign verifica los certificados SSL al entregar cargas a la URL de webhook. Los webhooks que no superen la verificación del certificado SSL no entregarán correctamente la carga útil de JSON.
Utilice SSL bidireccional para autenticar el cliente (Acrobat Sign) y el servicio de escucha para garantizar que solo Acrobat Sign pueda alcanzar la URL de webhook.
Si el webhook fue creado por una Aplicación para socios, el webhook utilizará un certificado de cliente (si está disponible) de la cuenta de la aplicación asociada para identificarse a sí mismo al realizar devoluciones de llamada webhook.
A continuación, se muestran las preguntas más comunes relativas al proceso de verificación del servidor web y a la verificación de la certificación del cliente.
Durante el registro de un webhook, Acrobat Sign verifica la URL del servidor webhook.
Los clientes no podrán registrar el webhook si la conexión con la URL de devolución de llamada webhook no se puede completar desde Acrobat Sign.
No.
La URL de devolución de llamada webhook solo puede ser HTTPS en el puerto 443 u 8443.
Acrobat Sign bloquea el tráfico HTTPS saliente para todos los demás puertos.
Una buena forma de comprobar el certificado de servidor es utilizar la herramienta DigiCert® SSL Installation Diagnostics Tool.
Introduzca solo el nombre de host, por ejemplo, www.digicert.com
Estos son algunos problemas comunes:
Solución: utilice un certificado SSL emitido por una autoridad de certificación pública para el servidor de devolución de llamada webhook.
Solución: instale los certificados intermedios en el servidor de devolución de llamada webhook.
Consulte https://www.digicert.com/kb/ssl-certificate-installation.htm para obtener información detallada.
Para configurar un SSL bidireccional de webhook, se requiere que el administrador cargue un archivo .p12 (o .pfx) que contenga la clave privada. El archivo se almacena de forma segura en la cuenta del cliente y el administrador tiene control total para eliminarlo en cualquier momento.
En una configuración de webhook bidireccional, Acrobat Sign es quien llama/el cliente y necesita la clave privada para demostrar que Acrobat Sign realiza la llamada en nombre de la cuenta del cliente.
Compruebe que SSL bidireccional está activado
SSL bidireccional debe estar habilitado en el servidor de devolución de llamada webhook.
Con cualquier navegador web, conéctese a la URL de devolución de llamada webhook. Debería obtener:
400 Solicitud incorrecta No se ha enviado el certificado SSL obligatorio
Esto significa que el servidor espera que el cliente envíe certificados de cliente (es decir, SSL bidireccional está habilitado para el servidor).
Si no ve el mensaje anterior, SSL bidireccional no está habilitado.
Puede utilizar Postman y realizar una solicitud POST a la URL de devolución de llamada webhook. Debería obtener un resultado similar.
Las credenciales del cliente pueden ser un certificado autofirmado o uno emitido por una autoridad de certificación. Sin embargo, debe cumplir como mínimo con las siguientes extensiones X.509 v3:
Extensión X.509 v3 |
Valor |
---|---|
ExtendedKeyUsage |
clientAuth (OID: 1.3.6.1.5.5.7.3.2) |
KeyUsage |
digitalSignature |
El certificado de cliente debe ser un archivo PKCS12 con extensión .p12 o .pfx, y debe incluir tanto el certificado de cliente (para que el servidor pueda verificar su identidad) como la clave privada del cliente (para que el cliente pueda firmar digitalmente los mensajes, de modo que el servidor los verifique durante el protocolo de enlace SSL).
Utilice el comando openssl para verificar el archivo p12 (pfx):
openssl pkcs12 -info -in outfile.p12
Debe solicitarse la contraseña de la clave privada. La salida debe contener ambos certificados y una clave privada cifrada, como:
Bag Attributes localKeyID: 9D BD 22 80 E7 B2 B7 58 9E AE C8 42 71 F0 39 E1 E7 2B 57 DB subject=/C=US/ST=California/L=San Jose/O=Adobe Inc./CN=sp.adobesignpreview.com issuer=/C=US/O=DigiCert Inc/CN=DigiCert TLS RSA SHA256 2020 CA1 -----BEGIN CERTIFICATE----- MIIGwDCCBaigAwIBAgIQAhJSKDdyQZjlbYO5MJAYOTANBgkqhkiG9w0BAQsFADBP MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMSkwJwYDVQQDEyBE ... JAKQLQ== -----END CERTIFICATE----- Bag Attributes: <No Attributes> subject=/C=US/O=DigiCert Inc/CN=DigiCert TLS RSA SHA256 2020 CA1 issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA -----BEGIN CERTIFICATE----- MIIEvjCCA6agAwIBAgIQBtjZBNVYQ0b2ii+nVCJ+xDANBgkqhkiG9w0BAQsFADBh MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 ... -----END CERTIFICATE----- Bag Attributes localKeyID: 9D BD 22 80 E7 B2 B7 58 9E AE C8 42 71 F0 39 E1 E7 2B 57 DB Key Attributes: <No Attributes> -----BEGIN ENCRYPTED PRIVATE KEY----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI7eNh2qlsLPkCAggA ... FHE= -----END ENCRYPTED PRIVATE KEY-----
Los certificados deben incluir como mínimo el certificado de entidad final y los certificados intermedios. Lo ideal sería incluir también el certificado raíz de la autoridad de certificación.
Asegúrese de que el archivo .p12 o .pfx esté protegido con contraseña.
Crear un certificado de cliente autofirmado (opcional)
Los certificados de cliente pueden emitirlos autoridades de certificación o ser autofirmados, según sus necesidades.
Para generar un certificado de cliente autofirmado, utilice el siguiente comando openssl:
openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
Mantenga en secreto los archivos resultantes, ya que son sus certificados de autoridad de certificación autofirmados.
A continuación, genere el archivo .p12 del cliente:
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.req
openssl x509 -req -in client.req -CA ca.cer -CAkey ca.key -set_serial 101 -extensions client -days 365 -outform PEM -out client.cer
openssl pkcs12 -export -inkey client.key -in client.cer -out client.p12
rm client.key client.cer client.req
Una vez realizada la configuración, envíe una petición POST a la URL de devolución de llamada webhook.
Debería obtener la respuesta 200.
¿Por qué Acrobat Sign rechaza mi archivo .pfx incluso después de haberlo verificado con Postman?
Si ha seguido el proceso anterior para la verificación del archivo pfx y Acrobat Sign sigue rechazándolo, es probable que el archivo se haya generado mediante una herramienta de Microsoft capaz de producir archivos PKCS12 no estándar.
En ese caso, utilice los siguientes comandos openssl para extraer los certificados y la clave privada del archivo .pfx y, a continuación, genere un archivo PKCS12 con el formato correcto:
// Extraer certificados y clave privada del archivo .pfx openssl pkcs12 -info -in microsoftclientssl.pfx -passin pass:"" -out clientcert.crt -nokeys openssl pkcs12 -info -in microsoftclientssl.pfx -passin pass:"" -out clientcert.key -nodes -nocerts // Crear nuevo archivo PKCS12 openssl pkcs12 -export -inkey clientcert.key -in clientcert.crt -out clientcert.pfx