Configura TLS para la IU de administración

Edge para nube privada v4.19.01

De forma predeterminada, accedes a la IU de administración de Edge a través de HTTP con la dirección IP del nodo del servidor de administración y el puerto 9000. Por ejemplo:

http://ms_IP:9000

Como alternativa, puedes configurar el acceso de TLS a la IU de administración para que puedas acceder a ella de la siguiente manera:

https://ms_IP:9443

En este ejemplo, configurarás el acceso de TLS para usar el puerto 9443. Sin embargo, Edge no requiere ese número de puerto: puedes configurar el servidor de administración para que use otros valores de puerto. El único requisito es que tu firewall permita el tráfico a través del puerto especificado.

Asegúrate de que el puerto TLS esté abierto

En el procedimiento de esta sección, se configura TLS para usar el puerto 9443 en el servidor de administración. Independientemente del puerto que uses, debes asegurarte de que esté abierto en el servidor de administración. Por ejemplo, puedes usar el siguiente comando para abrirlo:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT --verbose

Configura TLS

Usa el siguiente procedimiento para configurar el acceso TLS a la IU de administración:

  1. Genera el archivo JKS del almacén de claves que contiene tu certificación TLS y clave privada, y cópialo en el nodo del servidor de administración. Para obtener más información, consulta Configura TLS/SSL para Edge local.
  2. Ejecuta el siguiente comando para configurar TLS:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. Ingresa el número de puerto HTTPS, por ejemplo, 9443.
  4. Especifica si quieres inhabilitar el acceso HTTP a la IU de administración. De forma predeterminada, se puede acceder a la IU de administración a través de HTTP en el puerto 9000.
  5. Ingresa el algoritmo del almacén de claves. El valor predeterminado es JKS.
  6. Ingresa la ruta de acceso absoluta al archivo JKS del almacén de claves.

    La secuencia de comandos copia el archivo en el directorio /opt/apigee/customer/conf del nodo del servidor de administración y cambia la propiedad del archivo a "apigee".

  7. Ingresa la contraseña del almacén de claves en texto no encriptado.
  8. Luego, la secuencia de comandos reinicia la IU de administración de Edge. Después del reinicio, la IU de administración admite el acceso a través de TLS.

    Puedes ver estos parámetros de configuración en /opt/apigee/etc/edge-ui.d/SSL.sh.

Usa un archivo de configuración para configurar TLS

Como alternativa al procedimiento anterior, puedes pasar un archivo de configuración al comando en el paso 2 del procedimiento. Deberás usar este método si quieres establecer propiedades de TLS opcionales.

Para usar un archivo de configuración, crea un archivo nuevo y agrega las siguientes propiedades:

HTTPSPORT=9443
DISABLE_HTTP=y
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

Guarda el archivo en un directorio local con el nombre que desees. Luego, usa el siguiente comando para configurar TLS:

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

En el comando anterior, configFile es la ruta de acceso completa al archivo que guardaste.

Configura la IU de Edge cuando TLS finaliza en el balanceador de cargas

Si tienes un balanceador de cargas que reenvía solicitudes a la IU de Edge, puedes optar por finalizar la conexión TLS en el balanceador de cargas y, luego, hacer que el balanceador de cargas reenvíe las solicitudes a la IU de Edge a través de HTTP. Esta configuración es compatible, pero debes configurar el balanceador de cargas y la IU de Edge según corresponda.

La configuración adicional es necesaria cuando la IU de Edge envía correos electrónicos a los usuarios para que establezcan su contraseña cuando se crea el usuario o cuando el usuario solicita restablecer una contraseña perdida. Este correo electrónico contiene una URL que el usuario selecciona para establecer o restablecer una contraseña. De forma predeterminada, si la IU de Edge no está configurada para usar TLS, la URL del correo electrónico generado usa el protocolo HTTP y no HTTPS. Debes configurar el balanceador de cargas y la IU de Edge para que generen una dirección de correo electrónico que use HTTPS.

Para configurar el balanceador de cargas, asegúrate de que establezca el siguiente encabezado en las solicitudes reenviadas a la IU de Edge:

X-Forwarded-Proto: https

Para configurar la IU de Edge, haz lo siguiente:

  1. Abre el archivo /opt/apigee/customer/application/ui.properties en un editor. Si el archivo no existe, créalo:
    vi /opt/apigee/customer/application/ui.properties
  2. Establece la siguiente propiedad en ui.properties:
    conf/application.conf+trustxforwarded=true
  3. Guarda los cambios en ui.properties.
  4. Reinicia la IU de Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Configura las propiedades opcionales de TLS

La IU de Edge admite propiedades de configuración de TLS opcionales que puedes usar para establecer lo siguiente:

  • Protocolo TLS predeterminado
  • Lista de protocolos TLS compatibles
  • Algoritmos de TLS compatibles
  • Algoritmos de cifrado de TLS compatibles

Estos parámetros opcionales solo están disponibles cuando configuras la siguiente propiedad de configuración en un archivo de configuración, como se describe en Usa un archivo de configuración para configurar TLS:

TLS_CONFIGURE=y

En la siguiente tabla, se describen estas propiedades:

Propiedad Descripción
TLS_PROTOCOL Define el protocolo TLS predeterminado para la IU de Edge. De forma predeterminada, es TLS 1.2. Los valores válidos son TLSv1.2, TLSv1.1 y TLSv1.
TLS_ENABLED_PROTOCOL

Define la lista de protocolos habilitados como un array separado por comas. Por ejemplo:

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

Ten en cuenta que debes usar el carácter de escape ".

De forma predeterminada, todos los protocolos están habilitados.

TLS_DISABLED_ALGO

Define los conjuntos de algoritmos de cifrado inhabilitados y también se puede usar para evitar que se usen tamaños de clave pequeños para el protocolo de enlace TLS. No hay un valor predeterminado.

Los valores que se pasan a TLS_DISABLED_ALGO corresponden a los valores permitidos para jdk.tls.disabledAlgorithms, como se describe aquí. Sin embargo, debes usar caracteres de escape para los espacios cuando configures TLS_DISABLED_ALGO:

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048
TLS_ENABLED_CIPHERS

Define la lista de algoritmos de cifrado de TLS disponibles como un array separado por comas. Por ejemplo:

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

Ten en cuenta que debes usar el carácter de escape ".

La lista predeterminada de algoritmos de cifrado habilitados es la siguiente:

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

Consulta la lista de cifrados disponibles aquí.

Inhabilita los protocolos TLS

Para inhabilitar los protocolos TLS, debes editar el archivo de configuración, que se describe en Usa un archivo de configuración para configurar TLS, de la siguiente manera:

  1. Abre el archivo de configuración en un editor.
  2. Para inhabilitar un solo protocolo TLS, por ejemplo, TLSv1.0, agrega lo siguiente al archivo de configuración:
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    Para inhabilitar varios protocolos, por ejemplo, TLSv1.0 y TLSv1.1, agrega lo siguiente al archivo de configuración:

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. Guarda los cambios en el archivo de configuración.
  4. Ejecuta el siguiente comando para configurar TLS:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

    donde configFile es la ruta de acceso completa al archivo de configuración.

  5. Reinicia la IU de Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Usa cookies seguras

Apigee Edge para la nube privada admite agregar la marca secure al encabezado Set-Cookie para las respuestas de la IU de Edge. Si esta marca está presente, la cookie solo se puede enviar a través de canales habilitados para TLS. Si no está presente, la cookie se puede enviar por cualquier canal, ya sea seguro o no.

Las cookies sin la marca secure pueden permitir que un atacante capture y reutilice la cookie o secuestre una sesión activa. Por lo tanto, la práctica recomendada es habilitar este parámetro de configuración.

Para configurar la marca secure para las cookies de la IU de Edge, haz lo siguiente:

  1. Abre el siguiente archivo en un editor de texto:
    /opt/apigee/customer/application/ui.properties

    Si el archivo no existe, créalo.

  2. Establece la propiedad conf_application_session.secure en true en el archivo ui.properties, como se muestra en el siguiente ejemplo:
    conf_application_session.secure=true
  3. Guarda los cambios.
  4. Reinicia la IU de Edge con la utilidad apigee-serice, como se muestra en el siguiente ejemplo:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Para confirmar que el cambio funciona, verifica los encabezados de respuesta de la IU de Edge con una utilidad como curl, por ejemplo:

curl -i -v https://edge_UI_URL

El encabezado debe contener una línea similar a la siguiente:

Set-Cookie: secure; ...

Inhabilitar TLS en la IU de Edge

Para inhabilitar TLS en la IU de Edge, usa el siguiente comando:

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl