34

当我尝试从未启用 SSL 的应用程序/客户端连接到 Azure 中的 postgres 服务器时出现连接失败。

无法连接到服务器:致命:需要 SSL 连接。请指定 SSL 选项并重试。

这是一个很强的要求吗?有没有办法可以规避这个要求?

4

8 回答 8

17

除了绕过此错误并简单地禁用 SSL,您可能还想尝试通过 pimping 连接字符串来简单地启用 SSL:

"Server=SERVERNAME.postgres.database.azure.com;
    Port=5432;Database=DBNAME;
    User Id=DBUSER@SERVERNAME;
    Password=PASSWORD;
    SslMode=Require";

注意到最后的SslMode=Require后缀了吗?这也适用于 Npgsql(假设您使用 C#)连接到 Azure Database for Postgresql。

于 2018-03-12T19:14:03.803 回答
13

默认情况下,Azure Database for PostgreSQL 在服务器和客户端应用程序之间强制实施 SSL 连接,以防止 MITM(中间人)攻击。这样做是为了尽可能安全地连接到您的服务器。

虽然不推荐,但如果您的客户端应用程序不支持 SSL 连接,您可以选择禁用要求 SSL 连接到您的服务器。请查看如何在 Azure 中为您的 Postgres 服务器配置 SSL 连接以获取更多详细信息。您可以从门户或使用 CLI 禁用要求 SSL 连接。请注意,Azure 不建议在连接到服务器时禁用要求 SSL 连接。

于 2017-05-17T17:50:16.177 回答
5

它帮助到我:

psql -v sslmode=true -h myapp.postgres.database.azure.com -U my_db_admin@myapp postgres

于 2018-05-22T09:00:58.023 回答
1

文档

如果您的 PostgreSQL 服务器需要 TLS/SSL 连接(在 Azure Database for PostgreSQL 服务器中默认启用),请设置环境变量 PGSSLMODE=require,以便 pg_restore 工具使用 TLS 连接。如果没有 TLS,错误可能会显示为 FATAL: SSL connection is required。请指定 SSL 选项并重试。

例如,在 Bash 下将是export PGSSLMODE=require,然后运行pg_restore​​.

于 2020-11-18T06:36:47.737 回答
1

根据https://www.npgsql.org/doc/connection-string-parameters.html正确的参数是“SSL Mode=Require”我没有为我工作“SslMode=Require”

于 2021-09-26T10:53:28.007 回答
0

我刚刚改变了我的依赖

compile group: 'postgresql', name: 'postgresql', version: '8.1-407.jdbc3' 

到文件
runtimeOnly 'org.postgresql:postgresql'中。build.gradle它工作正常。

于 2020-07-24T06:35:33.220 回答
0

就我而言,我收到以下错误

Password for user user@server-name: 
psql: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.
FATAL:  SSL connection is required. Please specify SSL options and retry.

那是因为我输入了错误的密码。所以一定要检查你的密码,如果它是错误的,它可能会给出类似的错误。

希望这对某人有帮助...

于 2021-09-02T08:09:42.430 回答
-1

您可以为 Postgres 设置禁用 Azure 云本身的 SSL 功能!

在此处输入图像描述

于 2021-12-24T04:28:44.530 回答