使用SSL连接到Postgresql
本文关键字:Postgresql 连接 SSL 使用 | 更新日期: 2023-09-27 18:02:56
我试图通过我的c#应用程序连接到使用SSL的postgresql数据库。但我无法找出正确的连接字符串是什么。有人能帮忙吗?
NpgsqlConnection postgresConn;
public PostgreManager()
{
openConnection();
}
private void openConnection()
{
postgresConn = new NpgsqlConnection("Server=10.153.8.4;Port=5432;Database=au_wa_jpc;User Id=readonly;Password=myPass;");
postgresConn.Open();
}
编辑:我尝试在连接字符串中使用Ssl Mode=Require;
,但是它抛出以下异常:
未处理的System.IO类型异常。Npgsql.dll中发生IOException
附加信息:TlsClientStream。ClientAlertException: CertificateUnknown:服务器端证书未被接受。链状态:已处理的证书链,但在不受信任提供者信任的根证书中终止。
。证书中不存在指定的主机名
如这里和这里的文档所述,您必须在连接字符串中使用SSL Mode=Require;Trust Server Certificate=true
对我起作用的是阅读这篇文章。
PostgreSQL (SQL Authentication):服务器= 127.0.0.1;端口= 5432;数据库= myDataBase;用户,上的用户名都ID = dangillmor密码=我的密码;SSL = TrueOrFalse; SslMode = RequireORDisable;
=服务器IP地址,端口= 5432;数据库= myDataBase;;上的用户名都Uid = dangillmor Pwd =我的密码;SSL = TrueOrFalse; SslMode = RequireORDisable;
公认的答案对我不起作用!这是最有效的方法:
SSL = TrueOrFalse; SslMode = RequireORDisable;
下面的连接字符串是为我工作-不是在c#项目虽然:
"postgresql://<USER>:<PASSWORD>@$<POSTGRES_HOST>/<POSTGRES_DATABASE>?ssl=true&sslmode=require"