【问题标题】:Cannot connect postgresql db to my netcore web project (DigitalOcean Cloud)无法将 postgresql db 连接到我的 net core web 项目(DigitalOcean Cloud)
【发布时间】:2020-01-14 19:22:39
【问题描述】:

我想在我的网页中使用来自数字海洋的 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 进行了认证。

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

【问题讨论】:

    标签: postgresql ssl-certificate digital-ocean


    【解决方案1】:

    我找到了解决方案,我的问题是 ssl 证书,让我们加密它的自签名证书并且使用 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

    【讨论】:

    • 谢谢你!!!!!!这是 5 年前的事了,但它救了我:p
    • 如果我们不能使用信任服务器证书怎么办?我们如何创建合适的证书?
    猜你喜欢
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    相关资源
    最近更新 更多