我正在使用 Spring3、Hibernate4 和 postgres9.2。
为了启用 SSL 数据库连接,我按照以下步骤操作:
- 创建自签名证书:参考:http ://www.postgresql.org/docs/9.2/static/ssl-tcp.html#SSL-CERTIFICATE-CREATION
- 将生成的
server.crt
并复制server.key
到postgres/9.2/data
文件夹中。 - 休眠连接的 URL:
jdbc:postgresql://localhost:5432/DB_NAME?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
重新启动 postgres 后,我运行我的应用程序,它给出的错误如下:
org.postgresql.util.PSQLException: The server does not support SSL.
at org.postgresql.core.v3.ConnectionFactoryImpl.enableSSL(ConnectionFactoryImpl.java:307)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:105)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:65)
at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:140)
at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29)
at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21)
at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31)
at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:23)
at org.postgresql.Driver.makeConnection(Driver.java:393)
at org.postgresql.Driver.connect(Driver.java:267)
即使我试图在pg_hba.conf
文件末尾添加这一行,但 postgres 没有重新启动:
hostssl all all 127.0.0.1/32 trust
编辑
它适用于收到此类错误或想要添加数据库 ssl 连接的其他人:
我添加ssl = true
和删除了对 ssl 相关条目的评论,postgresql.conf
并且它起作用了。:)