解决 PostgresQL 中的“ssl 握手失败”错误

解决 PostgresQL 中的“ssl 握手失败”错误

我想使用 OpenSSL 从我的 XP 客户端通过 SSL 连接到我的 Postgres 8.3 数据库。即使没有 SSL,也可以正常工作。当我尝试使用 SSL(无客户端证书)时,我收到错误:

error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure

我已按照 Postgres 手册中的说明进行操作,包括创建自签名证书。在我的 pg_hba.conf 中有一行:

host  dbname  loginname   123.45.67.89/32  md5

服务器上的 OpenSSL 版本是 0.9.8g,客户端上的版本是 0.9.8j。如果您能提供任何有关解决问题的建议,我将不胜感激。

编辑:

postgresql.conf 中未注释的行是:

data_directory = '/var/ebs0/postgres/main' 
hba_file = '/etc/postgresql/8.3/main/pg_hba.conf' 
ident_file = '/etc/postgresql/8.3/main/pg_ident.conf' 
external_pid_file = '/var/run/postgresql/8.3-main.pid' 
listen_addresses = '*' 
port = 5432 max_connections = 100 
unix_socket_directory = '/var/run/postgresql' 
ssl = true 
shared_buffers = 24MB

答案1

我猜你正在尝试与一个未预料到的连接进行 SSL 通信。你可以尝试使用 hostssl 而不是 host,但显示你的 postgresql.conf 文件会更有用,该文件应该包含你的 SSL 配置选项。

相关内容