Configura TLS para la IU de administración

De forma predeterminada, puedes acceder a la IU de Edge a través de HTTP mediante 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 a TLS a la IU de Edge para poder acceder a ella de la siguiente manera:

https://ms_IP:9443

En este ejemplo, configuras el acceso a 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 el firewall permita el tráfico a través del puerto especificado.

Asegúrate de que el puerto TLS esté abierto

El procedimiento de esta sección configura TLS para que use 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. Si deseas obtener más información, consulta Configura TLS/SSL para Edge On-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 esta 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 configurar propiedades TLS opcionales.

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

HTTPSPORT=9443
DISABLE_HTTP=y
# Set type to PKCS12 if you are using a PKCS12 keystore
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 quieras. 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.

Cómo usar un almacén de claves PKCS12 para sistemas operativos habilitados con FIPS

Si usas Edge para una nube privada en un sistema operativo compatible con FIPS, debes usar un almacén de claves PKCS12. Puedes generar un almacén de claves PKCS12 con comandos estándar de OpenSSL. Cuando uses un almacén de claves PKCS12, establece KEY_ALGO=PKCS12 en el archivo de configuración.

Configurar la IU de Edge cuando TLS finalice en el balanceador de cargas

Si tienes un balanceador de cargas que reenvía solicitudes a la IU de Edge, puedes 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 obligatoria 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 este 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, 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 establece el siguiente encabezado en las solicitudes que se reenvían 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 no existe el archivo, créalo:
    vi /opt/apigee/customer/application/ui.properties
  2. Configura 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

Cómo configurar propiedades TLS opcionales

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 TLS admitidos

Estos parámetros opcionales solo están disponibles cuando estableces la siguiente propiedad de configuración en el archivo de configuración, como se describe en Cómo usar 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\"]

Observa que se debe escapar el carácter ".

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 claves 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 escapar los caracteres de espacio cuando configures TLS_DISABLED_ALGO:

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

TLS_ENABLED_CIPHERS

Define la lista de cifrados 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\"]

Observa que se debe escapar el carácter ".

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"

Encuentra la lista de algoritmos de cifrado disponibles aquí.

Inhabilita los protocolos TLS

Para inhabilitar los protocolos TLS, debes editar el archivo de configuración, que se describe en Cómo usar 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

    En el ejemplo anterior, 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 la adición de 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 a cualquier canal, sea seguro o no.

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

Para establecer 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 que se vea de la siguiente manera:

Set-Cookie: secure; ...

Inhabilita 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