Creare e abilitare un certificato SSL per una connessione sicura al database

Informazioni su questa attività

SSL/TLS protegge il trasporto di informazioni tra un client (in questo caso, il server Web) e un server (in questo caso, il server del database) da manomissioni e intercettazioni da parte di chiunque si trovi sulla rete (compresa la possibilità di accedere a queste due macchine). Per valutare l'utilità dell'SSL, è necessario ipotizzare che l'attaccante sia in grado di portare a termine l'attacco contro cui l'SSL è stato progettato. In altre parole, l'attaccante deve essere in grado di sniffare i pacchetti sulla rete o su uno dei due computer.

Importante: se si utilizzano certificati propri, assicurarsi che il parametro della chiave privata non abbia una password. Le chiavi private con password non sono supportate.

Procedura

  1. Creare un'autorità CA.
    1. openssl genrsa -out CAKey.pem 2048
    2. openssl req -new -x509 -days 365 -key CAKey.pem -sha512 -out cacert.pem
  2. Creare un certificato del server.
    Eseguire i comandi e seguire le istruzioni di esecuzione:
    1. openssl genrsa -aes256 -out svr-key.pem 2048
    2. openssl req -new -key svr-key.pem -out server.csr 
    3. openssl x509 -req -days 365 -in server.csr -CA cacert.pem -CAkey CAKey.pem -set_serial 00001 -sha512 -out server-cert.pem
  3. Rimuovere la password da 'server-private key.
    openssl rsa -in svr-key.pem -out server-key.pem
    Nota: se si utilizzano i propri certificati, è necessario rimuovere la password per 'server-private key.
  4. Verificare le modifiche.
    1. openssl x509 -in cacert.pem -text -noout
    2. openssl x509 -in server-cert.pem -text -noout
  5. Cambiare le directory.
    cd /nz/kit/share/security
  6. Copiare i file 'server-cert.pem e 'server-key.pem in '/nz/kit/share/security ed eseguire i seguenti comandi.
    • Per 11.0.7.1 e successivi:
      1. mv server-cert-sp800-131a.pem.sample server-cert-sp800-131a.pem.sample.BKP
      2. mv server-key-sp800-131a.pem.sample server-key-sp800-131a.pem.sample.BKP
      3. mv server-cert.pem server-cert-sp800-131a.pem.sample
      4. mv server-key.pem server-key-sp800-131a.pem.sample
    • Per 11.0.7.0 o inferiore senza 'enable_tls_v12:
      1. mv server-key.pem.sample server-key.pem.sample.BKP
      2. mv server-cert.pem.sample server-cert.pem.sample.BKP
      3. mv server-key.pem server-key.pem.sample
      4. mv server-cert.pem server-cert.pem.sample
    • Per 11.0.7.0 o inferiore con 'enable_crypto_std_v1 =1:
      1. mv server-cert-sp800-131a.pem.sample server-cert-sp800-131a.pem.sample.BKP
      2. mv server-key-sp800-131a.pem.sample server-key-sp800-131a.pem.sample.BKP
      3. mv server-cert.pem server-cert-sp800-131a.pem.sample
      4. mv server-key.pem server-key-sp800-131a.pem.sample
  7. Riavviare il sistema.
    1. nzstop
    2. nzstart
  8. Verificare le modifiche.
    1. Cambiare le directory in '/nz/data/security.
      cd /nz/data/security
    2. openssl x509 -in server-cert.pem -text -noout
    3. Eseguire il comando 'nzsql:
      nzsql -u admin -pw password -securityLevel onlySecured
      Esempio:
      nz@netezza01 ?]$ nzsql -u admin -p password -securityLevel onlySecured
      Welcome to nzsql, the IBM Netezza SQL interactive terminal. 
      
      Type: \h for help with SQL commands 
      \? for help on internal slash commands 
      \g or terminate with semicolon to execute query 
      \q to quit 
      
      SSL enabled connection. Cipher: AES256-SHA, bits: 256 
      SSL enabled connection. Cipher:AES256-SHA, bits: 256specifica che si sta utilizzando la comunicazione SSL corretta.
    4. Cercare la seguente voce in 'postgres/pg.log.
      DEBUG: Attempting SSL_accept() 
      DEBUG: SSL_accept succeeded
    5. In Windows, impostare la connessione con l'opzione " "SSL Mode" = "Require".