Creación y habilitación de un certificado SSL para una conexión de base de datos segura

Acerca de esta tarea

SSL/TLS protege el transporte de información entre un cliente (en este caso, su servidor web) y un servidor (en este caso, su servidor de base de datos) para que no pueda ser manipulado ni espiado por nadie que se encuentre en la red intermedia (incluso que pueda entrar en esas dos máquinas). Para evaluar si SSL es útil, debe suponer que el atacante está en posición de completar el ataque contra el que SSL está diseñado para protegerle. Es decir, el atacante necesitaría estar preparado para rastrear paquetes en la red o en cualquier máquina.

Importante: Si utiliza sus propios certificados, asegúrese de que el parámetro de clave privada no tiene contraseña. No se admiten claves privadas con contraseña.

Procedimiento

  1. Crear una autoridad CA.
    1. openssl genrsa -out CAKey.pem 2048
    2. openssl req -new -x509 -days 365 -key CAKey.pem -sha512 -out cacert.pem
  2. Cree un certificado de servidor.
    Ejecute los mandatos y siga las instrucciones de tiempo de ejecución:
    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. Elimina la contraseña de ' server-private key.
    openssl rsa -in svr-key.pem -out server-key.pem
    Nota: Si utiliza sus propios certificados, debe eliminar la contraseña de ' server-private key.
  4. Verifique los cambios.
    1. openssl x509 -in cacert.pem -text -noout
    2. openssl x509 -in server-cert.pem -text -noout
  5. Cambia de directorio.
    cd /nz/kit/share/security
  6. Copia los archivos ' server-cert.pem y ' server-key.pem ' en ' /nz/kit/share/security ' y ejecuta los siguientes comandos.
    • A partir de 11.0.7.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
    • Para 11.0.7.0 o inferior sin ' 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
    • Para 11.0.7.0 o inferior 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. Reinicie el sistema.
    1. nzstop
    2. nzstart
  8. Verifique los cambios.
    1. Cambia los directorios a ' /nz/data/security.
      cd /nz/data/security
    2. openssl x509 -in server-cert.pem -text -noout
    3. Ejecuta el comando ' nzsql ':
      nzsql -u admin -pw password -securityLevel onlySecured
      Ejemplo:
      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: 256especifica que está utilizando la comunicación SSL correcta.
    4. Busque la siguiente entrada en ' postgres/pg.log.
      DEBUG: Attempting SSL_accept() 
      DEBUG: SSL_accept succeeded
    5. En Windows, configure la conexión con la opción "SSL Mode" = "Require".