当我尝试从未启用 SSL 的应用程序/客户端连接到 Azure 中的 postgres 服务器时出现连接失败。
无法连接到服务器:致命:需要 SSL 连接。请指定 SSL 选项并重试。
这是一个很强的要求吗?有没有办法可以规避这个要求?
当我尝试从未启用 SSL 的应用程序/客户端连接到 Azure 中的 postgres 服务器时出现连接失败。
无法连接到服务器:致命:需要 SSL 连接。请指定 SSL 选项并重试。
这是一个很强的要求吗?有没有办法可以规避这个要求?
除了绕过此错误并简单地禁用 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。
默认情况下,Azure Database for PostgreSQL 在服务器和客户端应用程序之间强制实施 SSL 连接,以防止 MITM(中间人)攻击。这样做是为了尽可能安全地连接到您的服务器。
虽然不推荐,但如果您的客户端应用程序不支持 SSL 连接,您可以选择禁用要求 SSL 连接到您的服务器。请查看如何在 Azure 中为您的 Postgres 服务器配置 SSL 连接以获取更多详细信息。您可以从门户或使用 CLI 禁用要求 SSL 连接。请注意,Azure 不建议在连接到服务器时禁用要求 SSL 连接。
它帮助到我:
psql -v sslmode=true -h myapp.postgres.database.azure.com -U my_db_admin@myapp postgres
从文档:
如果您的 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
.
根据https://www.npgsql.org/doc/connection-string-parameters.html正确的参数是“SSL Mode=Require”我没有为我工作“SslMode=Require”
我刚刚改变了我的依赖
compile group: 'postgresql', name: 'postgresql', version: '8.1-407.jdbc3'
到文件
runtimeOnly 'org.postgresql:postgresql'
中。build.gradle
它工作正常。
就我而言,我收到以下错误
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.
那是因为我输入了错误的密码。所以一定要检查你的密码,如果它是错误的,它可能会给出类似的错误。
希望这对某人有帮助...