Mad*_*mar 5 c++ postgresql ssl openssl
我一直在尝试使用C++中的OpenSSL库连接到启用SSL的PostgreSQL服务器.我能够连接到PostgreSQL服务器并建立非SSL连接,但是当我尝试初始化SSL连接时,握手过程失败并出现以下错误:
Error
XXXXX:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:ssl\record\ssl3_record.c:252:
Run Code Online (Sandbox Code Playgroud)
在通过Wireshark进行分析时,我了解到客户端关闭了与alert协议版本的连接(这意味着客户端不支持RFC5246中所述的服务器协议版本).由于Client Hello和Server Hello已完成,因此客户端不响应.
我试过以下解决方案,
void ConfigureCtx(SSL_CTX* ctx)
{
SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, NULL);
SSL_CTX_set_cert_verify_callback(ctx, TrueCallback, NULL);
SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1);
}
Run Code Online (Sandbox Code Playgroud)
SSL_CTX* CreateSslCtx()
{
SSL_CTX *ctx;
ctx = SSL_CTX_new(TLSv1_2_client_method());
return ctx;
}
Run Code Online (Sandbox Code Playgroud)
PostgreSQL服务器详细信息:
客户详情:
归档时间: |
|
查看次数: |
332 次 |
最近记录: |