PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como habilitar SSL no PostgreSQL


PostgreSQL suporta conexão SSL que permite que os usuários se conectem com segurança aos seus bancos de dados. Neste artigo veremos como habilitar o SSL no banco de dados PostgreSQL.



Como habilitar SSL no PostgreSQL


Aqui estão as etapas para habilitar a conexão SSL no PostgreSQL. No servidor PostgreSQL, precisamos de 3 certificados no diretório de dados para configuração do SSL. Eles estão:
  • root.crt (certificado raiz confiável)
  • servidor.crt (certificado do servidor)
  • servidor.chave (chave privada)

Abra o terminal e execute o seguinte comando para executar como root
$ sudo -
$ cd /var/lib/pgsql/data

Gere a chave privada usando openssl. Você será solicitado a inserir a senha.
$ openssl genrsa -des3 -out server.key 1024

Remover senha
$ openssl rsa -in server.key -out server.key

Bônus de leitura:Principais blogs de banco de dados a seguir

Atualize a permissão do arquivo e a propriedade do arquivo de chave privada.
$ chmod 400 server.key
$ chown postgres.postgres server.key

Da mesma forma, crie um certificado de servidor
$ openssl req -new -key server.key -days 3650 -out server.crt -x509

Na instrução acima, -x509 indica um certificado autoassinado. Você será solicitado a fornecer detalhes como e-mail, país, etc. Digite-o e conclua a geração do certificado.

Como estamos usando um certificado autoassinado, usaremos nossa chave de servidor como certificado raiz.
$ cp server.crt root.crt

Atualize pg_hba.conf para adicionar as seguintes linhas
# IPv4 remote connections for authenticated users 
hostssl all www-data 0.0.0.0/0 md5 clientcert=1
hostssl all postgres 0.0.0.0/0 md5 clientcert=1

Edite postgresql.conf para adicionar a seguinte linha
ssl = on

Reinicie o servidor PostgreSQL
$ /etc/init.d/postgresql restart

Bônus de leitura:Como aumentar o máximo de conexões no PostgreSQL

Ativar SSL no cliente PostgreSQL


Também precisamos de 3 arquivos para habilitar o SSL no cliente PostgreSQL. Vamos armazená-los em ~/.postgresql/ diretório
  • root.crt (certificado raiz confiável)
  • postgresql.crt (certificado do cliente)
  • postgresql.key (chave privada)

Crie postgresql.key na máquina cliente e remova a senha.
$ openssl genrsa -des3 -out /tmp/postgresql.key 1024
$ openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key

Leitura bônus:Dicas de ajuste de desempenho do PostgreSQL

Em seguida, criamos postgresql.crt e o assinamos usando a raiz confiável (arquivo de chave privada do servidor). Observe , quando for solicitado o nome comum do certificado (CN), defina-o como nome do banco de dados.
$ openssl req -new -key /tmp/postgresql.key -out /tmp/postgresql.csr
$ openssl x509 -req -in server.req -out /tmp/postgresql.csr -CA root.crt -CAkey server.key -out /tmp/postgresql.crt -CAcreateserial

Copie os três arquivos criados no diretório /tmp do servidor para a máquina cliente. Copie root.crt do diretório /tmp do servidor para o ~/.postgresql/ do cliente diretório.

Espero que este artigo o ajude a habilitar o SSL no PostgreSQL.