Configurar um certificado raiz para verificação do servidor
Embora esse seja um requisito anual, neste momento o certificado raiz na cadeia também foi alterado, pois o provedor de certificados TLS/SSL da Adobe atualizou sua hierarquia de certificados. Isso pode afetar determinados clientes Postgres se a lista de Autoridades de certificação não tiver o certificado raiz. Por exemplo, um cliente PSQL CLI pode precisar ter os certificados raiz adicionados a um arquivo explícito
~/postgresql/root.crt
, caso contrário, isso pode resultar em um erro. Por exemplo, psql: error: SSL error: certificate verify failed
. Consulte a documentação oficial do PostgreSQL para obter mais informações sobre esse problema.O certificado raiz a ser adicionado pode ser baixado de https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem.
Para garantir uma conexão segura, o uso do SSL deve ser configurado no cliente e no servidor antes que a conexão seja feita. Se o SSL só estiver configurado no servidor, o cliente poderá enviar informações confidenciais, como senhas, antes de se estabelecer que o servidor requer alta segurança.
Por padrão, PostgreSQL não executa nenhuma verificação do certificado do servidor. Para verificar a identidade do servidor e garantir uma conexão segura antes que dados confidenciais sejam enviados (como parte do modo SSL verify-full
), você deve colocar um certificado raiz (autoassinado) no computador local (root.crt
) e um certificado folha assinado pelo certificado raiz no servidor.
Se o parâmetro sslmode
estiver configurado como verify-full
, a libpq verificará se o servidor é confiável verificando a cadeia de certificados até o certificado raiz armazenado no cliente. Em seguida, ele verifica se o nome do host corresponde ao nome armazenado no certificado do servidor.
Para permitir a verificação do certificado do servidor, você deve colocar um ou mais certificados raiz (root.crt
) no arquivo PostgreSQL em seu diretório base. O caminho do arquivo seria semelhante a ~/.postgresql/root.crt
.