Estou tentando me conectar a uma instância PG hospedada no AWS RDS usando uma conexão SSL segura. Onde armazeno a chave pública no windows para que ela seja aplicada automaticamente na conexão?
Por favor, note que quando eu abro o PGAdmin ele só me permite especificar arquivos .crt e .key. Existe uma maneira de apontar para arquivos .pem?
Baixei a chave pública referenciada aqui: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.SSL
No Linux, é uma simples questão de colocar essa chave no diretório OpenSSL padrão e o postgres parece detectá-la e cuidar do resto.
No Windows, não descobri como fazer isso ou onde armazenar o arquivo .pem ou como apontar o PGAdmin para um arquivo .pem.
Se você estiver usando o PGAdmin, ao criar uma nova conexão, haverá uma guia chamada
SSL
[1]. Lá você pode inserir seu arquivo pem.Se você estiver usando
psql
, coloque seupem
arquivo no%APPDATA%\postgresql\
diretório. Veja mais detalhes na documentação[2].Espero que ajude.
Referências:
Eu encontrei a resposta! Acontece que a conexão foi criptografada o tempo todo, só não percebi. Rapaz, isso me fez sentir estúpida. Acabei baixando o Wireshark e cheirando meus pacotes só para ter certeza.
Observe que isso se aplica ao modo ssl "require", mas para usar o modo ssl "verify-full" você ainda precisa de um certificado raiz. Neste caso, apenas peguei
rds-combined-ca-bundle.pem
e renomeei de .pem para .crt. Isso me permitiu apontar para o arquivo na guia SSL da janela de propriedades da conexão no PGAdmin.Fazendo isso, consegui especificar o modo ssl "verify-full" e conectar-me à minha instância.
Editar:
Por padrão, RDS Postgres aceitará conexões não-SSL. Acontece que o PGAdmin estava iniciando uma conexão SSL por padrão.
Para garantir que você esteja sempre usando SSL, você pode definir o parâmetro
rds.force_ssl
como 1 (ligado). Mais detalhes.No pgAdmin:
Basta carregar o
pem
arquivo como o "Certificado raiz", no meu caso, é um certificado raiz chamadoca.pem
. Trabalhou para mim.(Não tenho certeza sobre a compactação SSL, acabei de clicar nela também, deve funcionar sem ela.)