带有ssl选项的npgsql连接如何安全

时间:2018-11-11 09:26:43

标签: postgresql ssl connection npgsql

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

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

1 个答案:

答案 0 :(得分:1)

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

要使用SSL,最好将SSL Mode设置为require而不是preferrequire会尝试建立SSL连接,但如果服务器将回退到非SSL不支持。如果无法建立SSL,md5将导致连接尝试失败。

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

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