Postgresql 使用带有sslmode=verify full的epgsql连接到postgres
下面是我如何在erlang中使用Postgresql 使用带有sslmode=verify full的epgsql连接到postgres,postgresql,ssl,openssl,erlang,Postgresql,Ssl,Openssl,Erlang,下面是我如何在erlang中使用epgsql连接到postgres实例: epgsql:connect("example.com", "user", "secret", [{database, "whatever", {ssl, true}, {cacertfile, "cacert.crt"},
epgsql
连接到postgres实例:
epgsql:connect("example.com",
"user",
"secret",
[{database, "whatever",
{ssl, true},
{cacertfile, "cacert.crt"},
{certfile, "user.crt"},
{keyfile, "user.nopassword.key"},
{verify, verify_peer},
{fail_if_no_peer_cert, true}
])
我无法在这里设置sslmode=verifyfull
,就像python中的psycorg2
一样:
psycopg2.connect("host=example.com
user=user
dbname=whatever
sslrootcert=cacert.crt
sslcert=user.crt
sslkey=user.nopassword.key
sslmode=verify-full")
在这两种情况下,一切正常,但我有两个问题:
epgsql
选项中的{verify,verify_peer}
是否等同于sslmode=verify ca
sslmode=verify full
为什么我认为第一个问题的答案是肯定的:
,第节“ssl选项说明-服务器和客户端通用”: 验证对等模式下的默认选项验证乐趣:
{fun(_,{bad_cert, _} = Reason, _) ->
{fail, Reason};
(_,{extension, _}, UserState) ->
{unknown, UserState};
(_, valid, UserState) ->
{valid, UserState};
(_, valid_peer, UserState) ->
{valid, UserState}
end, []}
当错误为{bad\u cert,unknown\u ca}
时,此操作将失败