我使用的是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
)是最简单的方法。