Despliegue seguro mediante proxy inverso

Descubra cómo configurar el servicio de proxy inverso mediante NGINX para acceder a los microservicios de Oracle GoldenGate sin utilizar números de puerto.

Requisitos para el uso de ReverseProxySettings

Puede utilizar cualquier servicio de proxy inverso con MA. En el siguiente ejemplo, se proporciona un proceso que puede seguir para configurar otros servicios de proxy inverso junto con la documentación para el servidor proxy.

Los siguientes prerrequisitos proporcionan detalles sobre los requisitos mínimos para configurar un proxy inverso NGINX. Es posible que se requieran requisitos similares para el entorno y el proxy inverso, si utiliza una utilidad diferente para la configuración del proxy.

Nota: Al instalar Oracle GoldenGate 26ai en Oracle Linux 8 o RHEL 8, asegúrese de que la versión de NGINX sea 1.24 o superior activando el flujo de módulo NGINX adecuado.

  1. Instale NGINX, consulte Install the NGINX Web Server and Proxy on Oracle Linux. Para Oracle Linux, el comando para instalar NGINX es:

    yum -y install nginx

  2. Compruebe que la versión de JRE sea JRE 8 o superior.

  3. Instale Oracle GoldenGate MA.

  4. Cree uno o más despliegues activos de MA.

  5. Asegúrese de que el usuario de Oracle tiene permisos sudo.

  6. Configure la variable de entorno PATH para incluir la ruta de acceso del directorio de instalación de NGINX.

Ejecución de la utilidad ReverseProxySettings para configurar NGINX

Una instalación de la arquitectura de microservicios de Oracle GoldenGate incluye la utilidad ReverseProxySettings. La utilidad ReverseProxySettings se encuentra en el directorio $OGG_HOME/lib/utl/reverseproxy.

Para identificar comandos adicionales que se pueden utilizar con la utilidad ReverseProxySettings, ejecute la utilidad con la opción --help:

$OGG_HOME/lib/utl/reverseproxy/ReverseProxySettings --help

Las opciones disponibles con la utilidad ReverseProxySettings son:

-o o –salida

El nombre de archivo. El nombre de archivo por defecto es ogg.conf.

-P o –contraseña

Una contraseña para una cuenta de Service Manager.

-l o –log

Nombre del archivo log e inicia el registro. El valor por defecto no es ningún registro.

–trailOnly

Configurar solo para datos de pista de entrada.

-t o -type

Tipo de servidor proxy. El valor predeterminado es Nginx.

-s o –no-ssl

Configurar sin SSL.

-h o –host

Nombre de host virtual para el proxy inverso.

-p o –port

Número de puerto del proxy inverso. Los valores predeterminados son 80 o 443.

-? o –help

Visualización de información de uso.

-u o –user

Nombre de la cuenta del gestor de servicios que se va a utilizar.

-v o -version

Muestra su versión.

Ejecución de la utilidad ReverseProxySettings

Para utilizar la utilidad ReverseProxySettings:

  1. Para generar un archivo de configuración para el proxy inverso NGINX, navegue hasta la ubicación de la utilidad ReverseProxySettings:

    cd $OGG_HOME/lib/utl/reverseproxy
  2. Ejecute la utilidad ReverseProxySetting:

    ReverseProxySettings -u *adminuser* -P *adminpwd* -o ogg.conf http://localhost:9100

    En este fragmento de código, adminuser es el nombre de usuario de despliegue y adminpwd es la contraseña de usuario de despliegue utilizada para conectarse al despliegue.

  3. Copie el archivo ogg.conf generado en el paso 2 en el directorio /etc/nginx/conf.d.

    sudo cp ogg.conf /etc/nginx/conf.d/.
  4. Actualice el archivo ogg.conf para la configuración de SSL/TLS mediante los siguientes pasos:

    1. Busque la línea ssl_ciphers y sustitúyala por lo siguiente:

      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305;
    2. Agregue otra línea debajo de esta línea:

      ssl_conf_command Ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;
    3. Si utiliza un certificado autofirmado, asegúrese de que ha copiado la clave privada y el archivo pem del certificado en el directorio /etc/nginx, como se muestra en el siguiente ejemplo:

      sudo cp ogg.key /etc/nginx/.
      sudo cp ogg.pem /etc/nginx/.

      Cambie las dos líneas siguientes para que apunten a la ubicación de archivo correcta:

      ssl_certificate          /etc/nginx/ogg.pem;
      ssl_certificate_key      /etc/nginx/ogg.key;
    4. Si utiliza un certificado firmado de CA raíz, asegúrese de que tiene todos los certificados de CA intermedios agregados a su certificado de servidor:

      cat server_cert.pem intermediate_ca_cert1.pem intermediate_ca_cert2.pem > ogg_chain.pem

      Copie la clave privada y la cadena de certificados en /etc/nginx:

      sudo cp ogg_chain.pem /etc/nginx/.
      sudo cp ogg_key /etc/nginx/.

      Cambie las dos líneas siguientes para que apunten a la ubicación de archivo correcta:

      ssl_certificate         /etc/nginx/ogg_chain.pem;
      ssl_certificate_key     /etc/nginx/ogg.key;
  5. Valide la configuración de NGINX:

    sudo nginx -t

    Si el comando se ejecuta correctamente, la salida mostrará lo siguiente:

    NGINX: the configuration file /etc/NGINX/NGINX.conf syntax is ok
    NGINX: configuration file /etc/NGINX/NGINX.conf test is successful
  6. Reinicie el servicio NGINX:

    sudo systemctl restart nginx

    Si no se cargan los cambios para el archivo de configuración, detenga y reinicie el proxy.

  7. Para probar si puede acceder a los microservicios después de que NGINX se haya configurado correctamente, abra el explorador web.

  8. Introduzca la URL de proxy para el gestor de servicios mediante el número de puerto 443, similar a lo siguiente:

    http://dc.example.com:443

    Esto abriría la página de conexión del gestor de servicios, desde donde también puede acceder a los otros microservicios. Si desea acceder directamente a un microservicio, puede introducir la URL de proxy para ese microservicio, como se indica en el archivo ogg.conf, generado anteriormente.

Consulte también este video sobre la configuración del proxy inverso NGINX.

Terminación de SSL

Cuando hay una conexión no segura entre el proxy inverso, que utiliza una conexión basada en TLS, y el servidor de origen, se le conoce como terminación SSL de proxy inverso. Nota: En SSL-Termination, las conexiones entre el proxy inverso y los servidores de origen no son seguras.

Sin embargo, el puente SSL también está soportado cuando las conexiones entre el cliente y el proxy inverso están protegidas y la conexión entre el proxy inverso y el servidor de origen también está protegida.

Nota: mTLS no está soportado cuando se utiliza un proxy inverso.