首页 > 解决方案 > 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

标签: postgresqlnpgsql

解决方案


默认情况下,Npgsql 将验证服务器证书,因此SSL Mode=Require将对应于 libpq 的verify-caor verify-full(文档对此并不完全清楚)。

从您问题中的文档链接:

默认情况下,Npgsql 会验证你服务器的证书;如果您使用的是自签名证书,这将失败。Trust Server Certificate=true您可以通过在连接字符串中指定来指示 Npgsql 忽略它。要精确控制服务器证书的验证方式,您可以注册(这就像在 .NET 上一样UserCertificateValidationCallback)。NpgsqlConnectionSslStream


推荐阅读