【问题标题】:Is there a .net driver that supports SSL connection with verify-full to PostgreSQL?是否有支持 SSL 连接的 .net 驱动程序与 PostgreSQL 的完全验证?
【发布时间】:2014-02-26 02:39:39
【问题描述】:

我正在尝试使用 SSL 连接到 PostgreSQL 数据库。连接要求 SSLMode 是 verify-full,但我使用的驱动程序(来自 devart.com)支持 Require 作为最高级别。

有没有办法使用 devart 的最新驱动程序来完成此任务?如果没有,是否有其他驱动程序支持此功能?

我能够使用本机 ODBC 驱动程序进行连接,因此该连接适用于本机程序,但需要 .Net 驱动程序以避免将 ODBC 库导入我的 .NET 应用程序。

【问题讨论】:

  • 不,没有尝试过,但在他们的文档中找不到关于 SSLMode=verify-full 的任何内容。因此,在尝试其他驱动程序之前,请向使用过此功能的人寻求一些明确的指导。 devart 驱动程序在没有 SSL 的情况下运行良好,我有使用它的许可证,但会稍等一下,看看其他人是否有解决这个特定问题的经验。
  • 是的,dotConnect for PostgreSQL 支持 Require 模式作为最高级别。但是,如果您使用 SslMode.Require 并指定 'SSL CA Cert' 连接字符串参数,则行为将与使用 'verify-ca' SSL 模式相同。
  • 此驱动程序的 7.1 版本中存在与我使用的特定证书相关的错误,我现在已经成功测试了 7.3 版本的私有版本。感谢您对 devart 的大力支持。

标签: c# .net postgresql ssl devart


【解决方案1】:

使用 nPgSQLSSL=True;Sslmode=Require; 来强制实施 SSL。 The enum doesn't seem to provide Verify,不过(就像在 JDBC 驱动程序中一样)它可能总是验证,除非被覆盖。我没有它可以测试。

如果需要,您可以提供合适的CertificateValidationCallback 自己使用 C# API 进行证书验证。

【讨论】:

  • 这些选项与我正在使用的 devart 驱动程序可用的选项相同。我已经请德瓦特帮忙,在我尝试其他驱动程序之前,我会看看他们要说什么。
  • @vzczc 好主意。还可以尝试使用有效但主机名错误的证书对其进行测试,看看它是否真的抱怨。
猜你喜欢
  • 2021-01-21
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 2015-07-04
  • 1970-01-01
  • 2021-02-03
  • 1970-01-01
相关资源
最近更新 更多