Criando e ativando um certificado SSL para uma conexão segura com o banco de dados

Sobre esta tarefa

O SSL/TLS protege o transporte de informações entre um cliente (neste caso, seu servidor da Web) e um servidor (neste caso, seu servidor de banco de dados) contra adulteração e interceptação por qualquer pessoa na rede intermediária (incluindo a possibilidade de acessar essas duas máquinas). Para avaliar se o SSL é útil, você precisa presumir que o invasor está em condições de concluir o ataque contra o qual o SSL foi projetado para protegê-lo. Ou seja, o invasor precisaria estar em uma posição de procura de pacotes na rede ou em qualquer uma das máquinas.

Importante: se você usar seus próprios certificados, certifique-se de que o parâmetro de chave privada não tenha uma senha. Não há suporte para chaves privadas ativadas por senha.

Procedimento

  1. Crie uma autoridade CA.
    1. openssl genrsa -out CAKey.pem 2048
    2. openssl req -new -x509 -days 365 -key CAKey.pem -sha512 -out cacert.pem
  2. Crie um Certificado do servidor.
    Execute os comandos e siga as instruções de tempo de execução:
    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. Remova a senha de ' server-private key.
    openssl rsa -in svr-key.pem -out server-key.pem
    Observação: Se você estiver usando seus próprios certificados, deverá remover a senha de ' server-private key.
  4. Verifique as mudanças.
    1. openssl x509 -in cacert.pem -text -noout
    2. openssl x509 -in server-cert.pem -text -noout
  5. Altere os diretórios.
    cd /nz/kit/share/security
  6. Copie os arquivos " server-cert.pem e " server-key.pem para " /nz/kit/share/security e execute os seguintes comandos.
    • Para a 11.0.7.1 e posteriores:
      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 ou inferior sem ' 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 ou inferior com ' 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 o sistema.
    1. nzstop
    2. nzstart
  8. Verifique as mudanças.
    1. Altere os diretórios para ' /nz/data/security.
      cd /nz/data/security
    2. openssl x509 -in server-cert.pem -text -noout
    3. Execute o comando " nzsql:
      nzsql -u admin -pw password -securityLevel onlySecured
      Exemplo:
      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 você está usando a comunicação SSL correta.
    4. Procure a seguinte entrada em " postgres/pg.log.
      DEBUG: Attempting SSL_accept() 
      DEBUG: SSL_accept succeeded
    5. No Windows, configure a conexão com a opção "SSL Mode" = "Require".