Conectando-se ao PostgreSQL com SSL usando o OpenSSL s_client

1

Estou tentando conectar-me ao meu servidor PostgreSQL na AWS usando SSL do OpenSSL s_client no XP. Eu posso me conectar a um terceiro usando este s_client . Tanto no servidor quanto no XP, estou usando a versão 0.9.8.k do openssl.

Quando tento me conectar ao meu servidor, recebo o resultado:

CONNECTED(00000003) 2036:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188 :

No log do Postgres, vejo a entrada:

2009-10-30 13:58:08 UTC LOG: invalid length of startup packet

Eu gostaria de receber sugestões sobre onde procurar para que isso funcione. Talvez haja uma imagem pública da AWS na qual eu possa ver em qual PostgreSQL é conhecido por funcionar?

    
por Mitch 30.10.2009 / 15:10

2 respostas

7

Você não especificou por que você queria usar s_client .

Se for para interagir com o banco de dados, qualquer cliente decente fará isso. psql pode ser chamado com a opção sslmode=require . Veja man psql .

Se for para verificar o certificado SSL (e é por isso que me deparei com a sua pergunta), ainda não funciona com s_client como Magnus apontou 7 anos atrás.

No entanto, encontrei este script python que pode recuperar o certificado SSL: link

Por exemplo, para verificar datas de certificados:

postgres_get_server_cert.py example.com:5432 | openssl x509 -noout -dates
    
por 12.11.2016 / 18:41
5

Você não pode usar s_client . O PostgreSQL faz a negociação do protocolo antes de o SSL ser iniciado (para descobrir se deve ou não ser SSL, pois ambos são executados na mesma porta). Você precisa usar um cliente PostgreSQL adequado (como psql ou pgadmin , por exemplo), não s_client .

    
por 31.10.2009 / 12:04