Re: postgresql + SSL: что за проблема с сертификатом?
On 2010.06.01 at 11:26:01 +0800, Denis Feklushkin wrote:
> Установил сертификат (файлы server.key и server.crt в директории с данными), но не могу воспользоваться проверкой сервера клиентом по сертификату (опция клиента sslmode=verify-full)
>
> для начала, эта команда должна просто показывать сертификат, который шлёт сервер:
>
> den@localhost:~$ openssl s_client -connect db.h-----m.com:5432
> CONNECTED(00000003)
> 2932:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188:
openssl s_client не поддерживает протокол Postgresql.
smtp, pop3, ftp и imap поддерживает (as of 0.9.8) а PostgreSQL нет.
Во всех перечисленных протоколах поддеживается возможность сначала
установить незашифрованное соединение, а потом "сапгрейдить" его до
защищенного. Но для этого клиент должен уметь средствами протокола
попростить сервер "а давай мы соединение сапгрейдим". Для ряда
протоколов предусмотрена альтернатива - можно пойти на другой порт и там
сразу выполнить TLS handshake, до первой команды протокола. Например для
imap портом для незащищенного соединения (где потом можно сказадть
STARTTLS) является 143, а для защищенного - 993.
соответственно команда
openssl s_client -connect mailhost:143 -starttls imap
должна привести к установлению защищенного соединения, если imap-сервер
это поддерживает. Равно как и
openssl s_client -connect mailhost:993
(а вот тут -starttls уже не нужна)
А вот для протоокола postgresql альтернативного порта не предусмотрено.
Поэтому установить защищенное соединение с PostgreSQL может только
клиент, который знает как средствмами постгресовского протокола сказать
STARTTLS. То есть фактически только что-то, использующее libpq.
Reply to: