我使用的是npgsql版本2270,我将通过明文形式传递数据库密码(而不是通过db密码)来保护我的连接,并能够在预配置的postgresql服务器上使用SSL连接。我的疑问是如何使用npgsql设置连接字符串。

我试图添加ssl = true sslmode = prefer到conn字符串,但是我不知道如何验证它是否有效。
是否足以进行安全的数据传输?字符串正确吗?
是否也需要在服务器上激活SSL?
如何验证数据是否以ssl模式传输?谢谢大家

最佳答案

首先,SSL并不是真正地加密您的密码-而是有关整个流的加密。如果您使用PostgreSQL的md5身份验证方法(请参阅pg_hba.conf),则无论您是否使用SSL,都不会以明文形式传输密码。

要使用SSL,最好将SSL Mode设置为require而不是prefer:后者将尝试建立SSL连接,但是如果服务器不支持,则将回退到非SSL。如果无法建立SSL,require将使连接尝试失败。

无论如何,是的,您需要在PostgreSQL上设置SSL,包括证书和私钥-您可以阅读有关in the documentation的信息。

如果仅是为了避免以明文形式发送密码,则使用md5(或最新版本中的sha256)是最简单的方法。

10-07 19:02
查看更多