【问题标题】:Enable SSL connections on PostgreSQL server在 PostgreSQL 服务器上启用 SSL 连接
【发布时间】:2017-05-09 05:14:01
【问题描述】:

我正在尝试将我的 PowerBI 与 postgreSQL 数据库连接。出于这个原因,我需要启用 SSL 连接。 到目前为止,我已经创建了documentation 中提到的 server.key 和 server.crt 文件 我还使用以下参数修改了 postgresql.conf 文件:

#authentication_timeout = 1min      # 1s-600s
ssl = on                # (change requires restart)
#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
                    # (change requires restart)
#ssl_prefer_server_ciphers = on     # (change requires restart)
#ssl_ecdh_curve = 'prime256v1'      # (change requires restart)
ssl_cert_file = 'server.crt'        # (change requires restart)
ssl_key_file = 'server.key'     # (change requires restart)
#ssl_ca_file = ''           # (change requires restart)
#ssl_crl_file = ''          # (change requires restart)
#password_encryption = on
#db_user_namespace = off
#row_security = on

但我没有成功,我错过了什么?

Postgres 版本:9.5 视窗 8

我正在使用 ODBC 来测试与 SSL 的连接是否真的有效,正如您所看到的那样:

我想弄清楚如何让它运行,但如果我可以强制 Power BI 不使用 SSL 连接,我也会很高兴。如果有人知道怎么做,请告诉我!

编辑 更多信息:pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# IPv4 local connections:
#host    all             all             127.0.0.1/32            md5
hostssl    all             all             127.0.0.1/32            md5
# IPv6 local connections: host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

【问题讨论】:

  • 不能直接关闭需求吗?在您的屏幕截图中,您将 SSL 模式设置为 require。您不能将其更改为允许或禁用吗?
  • 我正在使用 ODBC 来测试 SSL 连接是否真的有效。我需要它来连接 Power BI
  • 您使用的是自签名证书吗?如果是这样,它可能不起作用。您可能需要从授权的证书颁发机构获取证书。
  • @Alexander 是的,我正在尝试使用自签名证书。我如何从授权机构获得它? (哪一个?)
  • 通常您会从证书颁发机构购买一个。其中有几个,但我知道 Namecheap.com 是一个来源。一个看起来很酷的新服务是 Let's Encrypt (letsencrypt.org/howitworks),它可以让你获得免费的 SSL 证书。我建议先试试 Let's Encrypt,因为它是免费的。获得证书后,将您的自签名证书替换为该证书。

标签: postgresql ssl-certificate


【解决方案1】:

您没有提到从源代码重新构建 Postgres,因为它在您引用的文档的第一段中说是必需的:

PostgreSQL 原生支持使用 SSL 连接进行加密 客户端/服务器通信以提高安全性。这需要 OpenSSL 安装在客户端和服务器系统上,并且 在构建时启用 PostgreSQL 支持(参见第 15 章)。

(强调我的)

如果您尝试通过预打包的发行版(例如 RPM 或 Debian 软件包)使其工作,则 SSL 支持未编译,因此对您不可用。

您需要确保已安装 OpenSSL,并从源代码重建 PostgreSQL,将 --with-openssl 命令行选项添加到源代码树配置中,如 15.4. Installation Procedure 中所述。

有关必要安装过程的更完整说明,请参阅Chapter 15. Installation from Source Code

【讨论】:

    猜你喜欢
    • 2019-06-01
    • 2011-04-08
    • 1970-01-01
    • 2020-01-25
    • 2022-11-02
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多