无法将 postgresql 数据库连接到我的网络核心 Web 项目(DigitalOcean Cloud)
Cannot connect postgresql db to my netcore web project (DigitalOcean Cloud)
我想在我的网页中使用来自数字海洋的 postgresql 数据库。在我创建这个数据库之前,我有一个免费的用于测试并且工作正常,但是这个新的它不起作用。
我可以毫无问题地从 pgadmin 连接到数据库。
我的web项目是net core 2.1.
我的连接字符串
- (1) 来自我的测试数据库(工作):
optionsBuilder.UseNpgsql( "Server=my-server;Port=5432;Database=mydb; User Id=myuser;Password=mypsw;");
- (2) 来自数字海洋数据库(不工作):
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
我想在我的网页中使用来自数字海洋的 postgresql 数据库。在我创建这个数据库之前,我有一个免费的用于测试并且工作正常,但是这个新的它不起作用。 我可以毫无问题地从 pgadmin 连接到数据库。
我的web项目是net core 2.1.
我的连接字符串
- (1) 来自我的测试数据库(工作):
optionsBuilder.UseNpgsql( "Server=my-server;Port=5432;Database=mydb; User Id=myuser;Password=mypsw;");
- (2) 来自数字海洋数据库(不工作):
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