Configura TLS para la API de administración

Edge para nube privada v. 4.17.05

De forma predeterminada, TLS está inhabilitado para la API de Management y puedes acceder a la API de Edge Management a través de HTTP mediante la dirección IP del nodo del servidor de administración y el puerto 8080. Por ejemplo:

http://ms_IP:8080

Como alternativa, puedes configurar el acceso TLS a la API de administración para poder acceder a ella con el siguiente formato:

https://ms_IP:8443

En este ejemplo, se configurará el acceso TLS para usar el puerto 8443. 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.

Para garantizar la encriptación de tráfico hacia y desde la API de administración, establece la configuración en el archivo /opt/apigee/customer/application/management-server.properties.

Además de la configuración de TLS, también puedes controlar la validación de contraseñas (longitud y seguridad de la contraseña) mediante la modificación del archivo management-server.properties.

Asegúrate de que el puerto TLS esté abierto

El procedimiento de esta sección configura TLS para que use el puerto 8443 en el servidor de administración. Sin importar el 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 8443 -j ACCEPT --verbose 

Configura TLS

Edita el archivo /opt/apigee/customer/application/management-server.properties para controlar el uso de TLS en el tráfico desde y hacia tu API de administración. Si el archivo no existe, créalo.

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

  1. Genera el archivo JKS del almacén de claves que contiene tu certificación TLS y tu clave privada. Si quieres obtener más información, consulta Configura TLS/SSL para dispositivos perimetrales locales.
  2. Copia el archivo JKS del almacén de claves en un directorio en el nodo del servidor de administración, como /opt/apigee/customer/application.
  3. Cambia la propiedad del archivo JKS a Apigee:
    $ chown apigee:apigee keystore.jks


    en el que keystore.jks es el nombre del archivo de almacén de claves.
  4. Edita /opt/apigee/customer/application/management-server.properties para configurar las siguientes propiedades. Si ese archivo no existe, créalo:
    conf_webserver_ssl.enabled=true
    # Deja conf_webserver_http.turn.off establecido en false
    # porque muchas llamadas internas de Edge usan HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Ingresa la contraseña del almacén de claves ofuscado a continuación.
    conf_webserver_keystore.password=OBF:obfuscatedPassword
    conf_webserver_cert.alias=apigee-devtest


    En el ejemplo anterior, keyStore.jks es el archivo del almacén de claves y obfuscatedPassword es la contraseña del almacén de claves ofuscada. Consulta Configura TLS/SSL para dispositivos perimetrales locales a fin de obtener información sobre cómo generar una contraseña ofuscada.
  5. Reinicia el servidor de administración de Edge con el siguiente comando:
    $/opt/apigee/apigee-service/bin/apigee-service Edge-management-server restart

La API de administración ahora admite el acceso a través de TLS.

Después de asegurarte de que TLS funciona correctamente y de que funcione para la IU de Edge, puedes inhabilitar el acceso HTTP a la API de administración, como se describe en la siguiente sección.

Configurar la IU de Edge para usar TLS y acceder a la API de Edge

En el procedimiento anterior, Apigee recomendó dejar conf_webserver_http.turn.off=false para que la IU de Edge pueda continuar realizando llamadas a la API de Edge a través de HTTP.

Usa el siguiente procedimiento para configurar la IU de Edge de modo que realice estas llamadas solo a través de HTTPS:

  1. Configura el acceso TLS a la API de Management como se describió anteriormente.
  2. Después de confirmar que TLS funciona para la API de administración, edita /opt/apigee/customer/application/management-server.properties para configurar la siguiente propiedad:
    conf_webserver_http.turn.off=true
  3. Reinicia el servidor de Edge Management con el siguiente comando:
    $ /opt/apigee/apigee-service/bin/apigee-service Edge-management-server restart
  4. Edita /opt/apigee/customer/application/ui.properties a fin de establecer la siguiente propiedad para la IU de Edge. Si ese archivo no existe, créalo:
    conf_apigee_apigee.mgmt.baseurl="https://FQDN:8443/v1"

    en el que FQDN es el nombre de dominio completo, según la dirección del certificado del servidor de administración, y el número de puerto es el que especificó conf_webserver_ssl.port con anterioridad.
  5. Solo si usaste un certificado autofirmado (no se recomienda en un entorno de producción) cuando configuraste el acceso de TLS a la API de administración anterior, agrega la siguiente propiedad a ui.properties:
    conf/application.conf+play.ws.ssl.loose.AcceptAnyCertificate=true

    De lo contrario, la IU de Edge rechazará un certificado autofirmado.
  6. Reinicia la IU de Edge con el siguiente comando:
    $ /opt/apigee/apigee-service/bin/apigee-service Edge-ui restart

Propiedades de TLS para el servidor de administración

En la siguiente tabla, se enumeran todas las propiedades TLS/SSL que puedes configurar en management-server.properties:

Propiedades

Descripción

conf_webserver_http.port=8080

El valor predeterminado es 8080.

conf_webserver_ssl.enabled=false

Habilitar o inhabilitar TLS/SSL. Con TLS/SSL habilitado (verdadero), también debes configurar las propiedades ssl.port y keystore.path.

conf_webserver_http.turn.off=true

Para habilitar o inhabilitar HTTP junto con HTTPS Si solo deseas usar HTTPS, deja el valor predeterminado en true.

conf_webserver_ssl.port=8443

El puerto TLS/SSL.

Obligatorio cuando TLS/SSL está habilitado (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.path=<path>

Es la ruta de acceso al archivo del almacén de claves.

Obligatorio cuando TLS/SSL está habilitado (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.password=

Usa una contraseña ofuscada en este formato: OBF:xxxxxxxxxx

conf_webserver_cert.alias=

Alias opcional del certificado del almacén de claves

conf_webserver_keymanager.password=

Si tu administrador de claves tiene una contraseña, ingresa una versión ofuscada de la contraseña en este formato: OBF:xxxxxxxxxx.

conf_webserver_trust.all= <false | true>

conf_webserver_trust.store.path=<path>

conf_webserver_trust.store.password=

Establece la configuración de tu almacén de confianza. Determina si deseas aceptar todos los certificados TLS/SSL (por ejemplo, para aceptar tipos no estándar). El valor predeterminado es false. Proporciona la ruta de acceso a tu almacén de confianza y, luego, ingresa una contraseña de almacén de confianza ofuscada con este formato: OBF:xxxxxxxxxx.

conf_webserver_Exclude.cipher.suites=<CIPHER_SUITE_1 CIPHER_SUITE_2>

conf_webserver_include.cipher.suites=

Indica los conjuntos de cifrado que deseas incluir o excluir. Por ejemplo, si descubres una vulnerabilidad en un algoritmo de cifrado, puedes excluirla aquí. Separa varios algoritmos de cifrado con un espacio.

Para obtener información sobre los conjuntos de cifrado y la arquitectura de la criptografía, consulta los siguientes recursos:

http://docs.oracle.com/javase/8/docs/technotes/
Guides/security/SunProviders.html#SunJSSE

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

Números enteros que determinan lo siguiente:

  • El tamaño de caché de sesión de TLS/SSL (en bytes) para almacenar información de sesión de varios clientes.
  • Es la cantidad de tiempo que pueden durar las sesiones de TLS/SSL antes de que se agote el tiempo de espera (en milisegundos).