Distribuzione sicura mediante proxy inverso

Scopri come configurare il servizio proxy inverso utilizzando NGINX per accedere ai microservizi Oracle GoldenGate senza utilizzare i numeri di porta.

Prerequisiti per l'uso di ReverseProxySettings

È possibile utilizzare qualsiasi servizio di proxy inverso con MA. Nell'esempio seguente viene fornito un processo che è possibile seguire per configurare altri servizi di proxy inverso insieme alla documentazione del server proxy in uso.

I prerequisiti seguenti forniscono dettagli sui requisiti minimi per configurare un proxy inverso NGINX. Requisiti simili potrebbero essere richiesti per l'ambiente in uso e il proxy inverso, se si utilizza una utility diversa per la configurazione del proxy.

Nota: durante l'installazione di Oracle GoldenGate 26ai su Oracle Linux 8 o RHEL 8, assicurarsi che la versione di NGINX sia 1.24 o successiva abilitando il flusso di moduli NGINX appropriato.

  1. Installare NGINX, vedere Installare NGINX Web Server and Proxy on Oracle Linux. Per Oracle Linux, il comando per installare NGINX è:

    yum -y install nginx

  2. Controllare che la versione JRE sia JRE 8 o successiva.

  3. Installare Oracle GoldenGate MA.

  4. Creare una o più distribuzioni MA attive.

  5. Assicurarsi che l'utente Oracle disponga delle autorizzazioni sudo.

  6. Configurare la variabile di ambiente PATH in modo che includa il percorso della directory di installazione NGINX.

Eseguire la utility ReverseProxySettings per configurare NGINX

Un'installazione dell'architettura dei microservizi Oracle GoldenGate include la utility ReverseProxySettings. La utility ReverseProxySettings si trova nella directory $OGG_HOME/lib/utl/reverseproxy.

Per identificare i comandi aggiuntivi che possono essere utilizzati con la utility ReverseProxySettings, eseguire la utility con l'opzione --help:

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

Le opzioni disponibili con la utility ReverseProxySettings sono:

-o o -output

Nome del file di output. Il nome file predefinito è ogg.conf.

-P o –password

Password per un account Service Manager.

-l o –log

Nome del file di log e avvia il log. L'impostazione predefinita è nessun log.

–trailOnly

Configura solo per i dati trail in entrata.

-t o –tipo

Il tipo di server proxy. L'impostazione predefinita è Nginx.

-s o –no-ssl

Configura senza SSL.

-h o –host

Nome host virtuale per il proxy inverso.

-p o –porta

Numero di porta del proxy inverso. Le impostazioni predefinite sono 80 o 443.

-? o –Guida

Visualizza le informazioni sull'uso.

-u o –utente

Nome dell'account Service Manager da utilizzare.

-v o –versione

Visualizza la versione.

Eseguire la utility ReverseProxySettings

Per utilizzare la utility ReverseProxySettings:

  1. Per generare un file di configurazione per il reverse proxy NGINX, passare alla posizione della utility ReverseProxySettings:

    cd $OGG_HOME/lib/utl/reverseproxy
  2. Eseguire la utility ReverseProxySetting:

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

    In questo snippet di codice, adminuser è il nome utente della distribuzione e adminpwd è la password utente della distribuzione utilizzata per eseguire il login alla distribuzione.

  3. Copiare il file ogg.conf generato nel passo 2 nella directory /etc/nginx/conf.d.

    sudo cp ogg.conf /etc/nginx/conf.d/.
  4. Aggiornare il file ogg.conf per le impostazioni SSL/TLS utilizzando la procedura riportata di seguito.

    1. Trovare la riga ssl_ciphers, sostituirla con quanto segue:

      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305;
    2. Aggiungere un'altra riga sotto questa riga:

      ssl_conf_command Ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;
    3. Se si utilizza un certificato autofirmato, assicurarsi di avere la chiave privata e il file pem del certificato copiati nella directory /etc/nginx, come mostrato nell'esempio seguente:

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

      Modificare le due righe seguenti in modo che puntino alla posizione corretta del file:

      ssl_certificate          /etc/nginx/ogg.pem;
      ssl_certificate_key      /etc/nginx/ogg.key;
    4. Se si utilizza un certificato firmato dalla CA root, assicurarsi di avere tutti i certificati CA intermedi aggiunti al certificato server:

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

      Copiare la chiave privata e la catena di certificati in /etc/nginx:

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

      Modificare le due righe seguenti in modo che puntino alla posizione corretta del file:

      ssl_certificate         /etc/nginx/ogg_chain.pem;
      ssl_certificate_key     /etc/nginx/ogg.key;
  5. Convalidare la configurazione NGINX:

    sudo nginx -t

    Se il comando riesce, l'output mostrerà quanto segue:

    NGINX: the configuration file /etc/NGINX/NGINX.conf syntax is ok
    NGINX: configuration file /etc/NGINX/NGINX.conf test is successful
  6. Riavviare il servizio NGINX:

    sudo systemctl restart nginx

    Se le modifiche per il file di configurazione non vengono caricate, arrestare e riavviare il proxy.

  7. Per verificare se è possibile accedere ai microservizi dopo l'impostazione di NGINX, aprire il browser Web.

  8. Immettere l'URL proxy per Service Manager utilizzando la porta numero 443, simile alla seguente:

    http://dc.example.com:443

    In questo modo viene aperta la pagina di login di Service Manager, da cui è possibile accedere anche agli altri microservizi. Se si desidera accedere direttamente a un microservizio, è possibile immettere l'URL proxy per tale microservizio, come indicato nel file ogg.conf, generato in precedenza.

Vedere anche questo video sulla configurazione del proxy inverso NGINX.

Cessazione SSL

Quando c'è una connessione non sicura tra il proxy inverso, che utilizza una connessione basata su TLS, e il server di origine, viene indicato come terminazione SSL del proxy inverso. Nota: in SSL-Termination le connessioni tra il proxy inverso e i server di origine non sono sicure.

Tuttavia, SSL-bridging è supportato anche dove le connessioni tra il client e proxy inverso è protetto e la connessione tra il proxy inverso e il server di origine è anche protetta.

Nota: mTLS non è supportato quando si utilizza un proxy inverso.