Certificates
Certificados son credenciales digitales que incluyen identificación y clave pública. Pueden ser validados por una empresa de certificación para obtener más seguridad.
En general, un certificado es un mecanismo que garantiza una comunicación segura entre el cliente y el servidor.
Hay dos tipos de certificados que se pueden registrar en el Manager: certificados para la conexión entre gateway y backend (destination certificates) y certificados para la conexión entre aplicaciones y gateway (inbound certificates), este último para uso en entornos específicos.
Lista de certificados
La pantalla Certificates se encuentra en Virtual Hosts, en el menú principal.
La pantalla muestra todos los certificados existentes, con estas informaciones:
-
Status: informa si el certificado está activo (icono: ) o expirado (icono: ).
-
Name: nombre único para el certificado.
-
Inbound certificate: informa si el certificado se va a utilizar dentro de un entorno (para la conexión entre las apps y el gateway) o no (en este último caso, es un certificado para la conexión entre el gateway y el backend).
-
Domain name: muestra el nombre y la información relativa al dominio.
-
Expiration: fecha y hora de caducidad del certificado, en formato mm/dd/aa hh:mm:ss. Los campos con fechas pasadas significan que el certificado ha caducado y los campos con fechas futuras significan que los certificados están activos.
Además de estos datos, la columna Actions tiene dos opciones: actualizar o eliminar un certificado (leer más sobre ellos a continuación).
Registro de un certificado
Para registrar un certificado, haga clic en el botón Create Certificate, representado por el símbolo +. Se le dirigirá a una pantalla donde podrá rellenar los datos necesarios.
Destination Certificates
Para los certificados utilizados en la conexión entre el gateway y el backend, no marque la opción Inbound Certificate. Los datos a ser informados para los certificados de destino son:
-
Name: campo obligatorio para un nombre único.
-
Certificate Body: campo obligatorio para insertar el cuerpo del certificado digital de dominio público en formato PEM. Si lo prefiere, el botón Certificate Body se puede utilizar para cargar un archivo (.pem o .crt y no cifrado).
-
Private Key: campo requerido para informar a la clave privada, en formato PEM (PKCS #8). La clave no puede tener una contraseña. También se puede transmitir cargando un archivo (formato aceptado: .key y no cifrado).
-
En caso de que la clave a retransmitir tiene algún tipo de contraseña, puede ser eliminada. Para ello, copie el archivo de clave privada en el directorio OpenSSL y, utilizando OpenSSL, ejecute el comando
openssl rsa -in privateKey.pem -out newPrivate.pem
.Consulte detalles a cerca de la conversión de claves privadas aquí.
-
-
Certificate Chain: campo opcional para insertar la cadena de confianza que valida la entidad de emisión del certificado.
-
El campo puede contener una o más entidades certificadoras; cada entrada debe estar separada por
----BEGIN CERTIFICATE----
y----END CERTIFICATE----
, respectivamente. -
Si lo prefiere, el botón Certificate Chain se puede utilizar para cargar un archivo (.pem o .crt).
-
Después de rellenar los datos, haga clic en Save. Se le redirigirá a la pantalla de listado, que ahora contendrá su certificado.
Inbound Certificates
Para que los certificados se usen internamente, en un entorno que haga referencia a la conexión entre apps y gateway, marque primero la opción Inbound Certificate. Los datos que se transmitirán en este caso son:
-
Name: campo obligatorio para un nombre único.
-
Certificate Body: campo obligatorio para insertar el cuerpo del certificado digital de dominio público en formato PEM. Si lo prefiere, el botón Certificate Body se puede utilizar para cargar un archivo (.pem o .crt y no cifrado).
-
Para los certificados de entrada, el tamaño mínimo aceptado es de 2048 bits.
-
-
Private Key: campo requerido para informar a la clave privada, en formato PEM (PKCS #8). La clave no puede tener una contraseña. También se puede transmitir cargando un archivo (formato aceptado: .key y no cifrado).
-
En caso de que la clave a retransmitir tiene algún tipo de contraseña, puede ser eliminada. Para ello, copie el archivo de clave privada en el directorio OpenSSL y, utilizando OpenSSL, ejecute el comando
openssl rsa -in privateKey.pem -out newPrivate.pem
. -
Para los certificados de entrada, el tamaño mínimo aceptado es de 2048 bits.
Consulte detalles a cerca de la conversión de claves privadas aquí.
-
-
Certificate Chain: campo opcional para insertar la cadena de confianza que valida la entidad de emisión del certificado.
-
El campo puede contener una o más entidades certificadoras; cada entrada debe estar separada por
----BEGIN CERTIFICATE----
y----END CERTIFICATE----
, respectivamente. -
Si lo prefiere, el botón Certificate Chain se puede utilizar para cargar un archivo (.pem o .crt).
-
-
Trusted CA: campo en el que debe incluirse la cadena de certificados (certificate chain) utilizada por el socio al llamar al entorno. Esta cadena contiene información sobre el certificado y la autoridad de certificación que lo emitió.
-
El campo puede contener una o más cadenas; cada entrada debe estar separada por
----BEGIN CERTIFICATE----
y----END CERTIFICATE----
, respectivamente. -
Si lo prefiere, el botón Trusted CA se puede utilizar para cargar un archivo (.pem o .crt).
El campo es opcional si se utiliza TLS y obligatorio en el caso de mTLS.
-
Después de rellenar los datos, haga clic en Save. Se le redirigirá a la pantalla de listado, que ahora contendrá su certificado.
Para que un certificado de entrada se aplique a un entorno, debe agregarse a una dirección de entrada (inbound address) configurada como host del entorno. En este caso, si el usuario desea habilitar mTLS como opción de seguridad, deve rellenar el campo Trusted CA. Obtenga información sobre cómo configurar una dirección de entrada aquí y sobre cómo registrar un entorno aquí. |
Obtención de información sobre el certificado del cliente a través de la cabecera
Es posible extraer informaciones de certificados X.509 de los clientes a través de header (x-forwarded-client-cert
) en una conexión segura de tipo mTLS.
El header se puede utilizar en cualquier petición con conexión mTLS y es posible extraer la información cuando el handshake TLS tiene éxito (es decir, cuando se completa el paso de intercambio de certificados y generación de claves).
Es útil, por ejemplo, cuando se necesita comprobar la información del certificado durante una llamada a la API.
La información que se puede traficar a través del header es: By
, Hash
, Cert
, Chain
, Subject
, URI
, y DNS
.
Nuestro equipo de Ingeniería de Producto ha desarrollado un custom interceptor (llamado x509 Interceptor) para extraer y manipular datos de certificados X.509 a través del header x-forwarded-client-cert
.
Se puede añadir al flujo de peticiones de las APIs utilizadas en conexiones mTLS.
Puede acceder al código y a información más detallada sobre cómo utilizarlo aquí.
Si tiene una capa WAF (Web Application Firewall) antes del Sensedia Gateway, es necesario cambiar el nombre de la cabecera x-forwarded-client-cert por otro (por ejemplo, forwarded-client-cert ).
Otra posibilidad es asignar el valor del certificado a algun otro header antes de reenviarlo a el Gateway.
Recordando que si tiene WAF, puede: dejar que WAF se encargue de mTLS o TLS o configurar un bypass para que Sensedia Gateway se encargue de esta tarea.
|
Actualización de un certificado
Los certificados registrados se pueden actualizar a través de la pantalla de listado. Para eso, haga clic en el botón Refresh (icono: ) en la fila del certificado de destino.
Puede actualizar los certificados caducados y activos, incluso si están en uso.
Inbound certificates no se pueden actualizar, solo se eliminan. |
Al hacer clic en el botón Refresh, aparecerá una ventana para confirmar la acción.
Después de hacer clic en el botón Confirm, se le dirigirá a una pantalla como la página de registro del certificado, con los campos de datos que puede modificar.
Para actualizar un certificado, debe enviar un nuevo cuerpo del certificado, una nueva clave privada y, opcionalmente, una nueva cadena de certificados. Sin embargo, no se pueden realizar las siguientes acciones:
-
edición del nombre.
-
actualización del certificado sin informar el cuerpo del certificado y la clave privada.
-
actualización del certificado en caso de que alguno de los atributos utilizados para rellenar los campos de certificado ya esté relacionado con cualquier otro certificado registrado.
Eliminación de un certificado
Puede eliminar un certificado haciendo clic en el botón Delete (icono: ), que también se encuentra en la fila del certificado de destino, en la lista de certificados existentes.
Aparecerá una ventana para confirmar la acción.
Al confirmarlo, el certificado se eliminará y ya no aparecerá en la lista de certificados existentes.
No se puede eliminar inbound certificates si se utilizan en un host de entorno (es decir, una dirección de entrada). Si desea excluir dicho certificado, primero debe quitarlo del host, en la pantalla Inbound Address. |
Share your suggestions with us!
Click here and then [+ Submit idea]