使用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连接到Postgresql

如这里和这里的文档所述,您必须在连接字符串中使用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"