postgresql - npgsql 驱动程序 sslmode 缺少 verify-ca 和 verify-full -- PostgreSql
问题描述
根据下面的链接,PostgreSql 支持多种ssl 模式连接,但其 ADO.net 驱动程序npgsql 不支持其 JDBC 驱动程序支持的模式 verify-ca 和 verify-full 。
这有什么原因吗?是否可以以其他方式使用这些模式?
PostgreSql 文档 https://www.postgresql.org/docs/9.1/libpq-ssl.html
Npgsql 驱动文档 https://www.npgsql.org/doc/connection-string-parameters.html
JDBC 驱动文档 https://jdbc.postgresql.org/documentation/head/ssl-client.html
解决方案
默认情况下,Npgsql 将验证服务器证书,因此SSL Mode=Require
将对应于 libpq 的verify-ca
or verify-full
(文档对此并不完全清楚)。
从您问题中的文档链接:
默认情况下,Npgsql 会验证你服务器的证书;如果您使用的是自签名证书,这将失败。
Trust Server Certificate=true
您可以通过在连接字符串中指定来指示 Npgsql 忽略它。要精确控制服务器证书的验证方式,您可以注册(这就像在 .NET 上一样UserCertificateValidationCallback
)。NpgsqlConnection
SslStream
推荐阅读
- swift - Swift Mapkit 移除注解并释放内存
- ruby-on-rails - 在 Rails 6 中通过 API 发出 POST 请求后停止重新加载页面
- c++ - “对 'std::operator<<(std::ostream&, std::LinkedList const&) 的未定义引用”C++
- azure - 在 Azure DevOps Pipeline 模板中使用变量
- java - 复杂对象作为 Hibernate 实体中的内部类
- python - 我的动画功能有问题。它给了我一个空的情节
- android - 单击以在没有电话号码的whatsapp api上发送消息
- authentication - OpenID Connect 服务器是否应该提供两次相同的令牌?
- c# - 列的自动宽度和标题的自动换行在 OpenXML Excel 中不起作用
- python - 是否可以在 python 的列表理解中使用多个条件?