无法将 postgresql 数据库连接到我的网络核心 Web 项目(DigitalOcean Cloud)

Cannot connect postgresql db to my netcore web project (DigitalOcean Cloud)

我想在我的网页中使用来自数字海洋的 postgresql 数据库。在我创建这个数据库之前,我有一个免费的用于测试并且工作正常,但是这个新的它不起作用。 我可以毫无问题地从 pgadmin 连接到数据库。

我的web项目是net core 2.1.

我的连接字符串

optionsBuilder.UseNpgsql( "Server=my-server;Port=5432;Database=mydb; User Id=myuser;Password=mypsw;");

optionsBuilder.UseNpgsql("Server=myserver;Port=25060;Database=defaultdb; User Id=doadmin;Password=mypsw;SslMode=Require");

如果我使用 (1) 连接它工作完美,但是当我更改为 (2) 连接时会抛出错误消息。 这是错误消息:

“根据验证程序,远程证书无效。”

我的网站已通过 Let's Encrypt、certbot 认证。

如果您需要更多信息,请告诉我。

我找到了解决方案,我的问题是 ssl 证书,letsencrypt 它是一个自签名证书,并且 sslmode=require,连接失败。 所以你必须添加这个参数Trust Server Certificate=true.

optionsBuilder.UseNpgsql("Server=myserver;Port=25060;Database=defaultdb; User Id=doadmin;Password=mypsw;SslMode=Require;Trust Server Certificate=true");

来源:https://www.npgsql.org/doc/security.html#encryption-ssltls