¿Cómo configurar certificados?

A partir de la versión 4.3.0.0 de la API Platform, la configuración completa de certificados se realiza en tres pantallas del API Manager:

  • Certificates (Virtual Hosts  Certificates). Aquí el certificado en sí es registrado.

  • Inbound Addresses (que se encuentra en Menú principal  Virtual Hosts). Aquí se define la dirección a la que responderá el certificado.

  • Environments (que se encuentra en Menú principal  Virtual Hosts). Aquí se crean contextos que complementan las direcciones definidas en la pantalla Inbound Addresses. Con la combinación inbound address + environment, definimos la ruta que se utilizará para el acceso a las APIs.

Ejemplo

  • Certificado: *sensedia.com

  • Inbound Address: demo.sensedia.com

  • Environment: demo.sensedia.com/dev

En este escenario, todos los entornos creados a partir de la dirección demo.sensedia.com utilizarán el certificado *sensedia.com.

mTLS

El intercambio mutuo de certificados tiene dos partes, cada una con sus respectivas credenciales.

Las siguientes son las credenciales utilizadas en la configuración de mTLS:

  • Partner (quien hace la llamada):

    • certificate_partner.pem: certificado en sí.

    • privatekey_partner.pem: clave privada.

    • ca_partner.pem: Trusted CA — certificado de la entidad emisora de certificados que generó el certificado del partner.

  • Host (quien recibe la llamada):

    • certificado_host.pem: certificado en sí.

    • privatekey_host.pem: clave privada.

    • chain_host.pem: cadena de certificados generada al crear el certificado utilizado en el inbound address.

Con estos datos en mano, las credenciales se registran en la pantalla Virtual Hosts  Certificates del API Manager, después de hacer clic en el botón +. Para el registro de un certificado utilizado por un inbound address, marque la opción Inbound Certificate. Estos son los campos que deben rellenarse:

  • Name: nombre que identifica el certificado.

  • Certificate Body: cuerpo del certificado del host (certificado_host.pem).

  • Private Key: clave privada del host (privateKey_host.pem)

  • Certificate Chain: cadena de certificados del host (chain_host.pem)

  • Trusted CA: Trusted CA del partner (ca_partner.pem).

Una vez ingresado el certificado en el API Manager, en la pantalla Inbound Addresses es posible asignarlo a la dirección a la que responderá. Para esto, elija HTTPS o HTTP|HTTPS en el campo Protocol Type, que abrirá otros campos específicos de seguridad. En Security, elija mTLS, en TLS Version, configure el rango de versiones TLS soportadas y, en Certificates, seleccione el certificado registrado.

A partir de esta configuración, cada entorno creado con esta dirección entrante como base recibirá llamadas con conexión mTLS.

Ejemplo

Una posible llamada realizada por el partner es:

curl -X GET --cacert ca_partner.pem --cert certificado_partner.pem --key privateKey_partner.pem https://inbound-url/basepath -v

Con las configuraciones anteriores correctamente realizadas, el comportamiento esperado es que ambas partes realicen las validaciones de los certificados que recibieron:

  • el partner valida, en su trusted_store, el certificado registrado en el inbound address;

  • el host valida el certificado que recibió del partner, ya que la Trusted CA del partner fue registrada en el Manager.

Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]