代码之家  ›  专栏  ›  技术社区  ›  Martijn Sneijders

Postgresql windows服务器ssl压缩不工作

  •  0
  • Martijn Sneijders  · 技术社区  · 9 年前

    在Windows上使用Postgresql 9.5 x64,我启用了SSL(默认允许密码为“HARD:MEDIUM:!aNULL”)并检查了SSL压缩。

    我对加密不感兴趣,我想测试我的应用程序在有线压缩时是否表现得更好。

    PGAdmin连接正常。 我的Npgsql客户端也连接良好。

    但通过分析网络流量,它表明没有有线压缩(与没有ssl相比,总数据没有差异)。

    我怀疑postgresql正在使用的OpenSSL,没有使用ZLIB进行压缩,或者我的客户端没有。

    使用“openssl s_client connect”到服务器,它在响应中显示:COMPRESSION:NONE。

    如何在Postgresql 9.5 x64 windows服务器上实现SSL压缩?

    更新:我编译了一个OpenSSL。启用了ZLIB的dll( https://github.com/openssl/openssl/tree/OpenSSL_1_0_2-stable ). 将生成的libeay32.dll和ssleay32.dll放置在PostgreSQL/9.5/bin文件夹中。 现在,当我使用PgAdminIII连接并启用SSL压缩时,我确实通过网络进行了压缩。

    然而,使用Npgsql(ado.net提供程序),没有压缩。我可以断定npgsql不支持SSL压缩吗?或者我可以做些什么让npgsql客户端使用压缩吗?

    2 回复  |  直到 9 年前
        1
  •  1
  •   Martijn Sneijders    9 年前

    构建我自己的openssl,包括ZLIB,在postgresql服务器后端启用压缩。对于一个使用libpq并使用sslcompression=1连接字符串的C++客户端,它使用压缩。

    使用ssl压缩,一个需要10MB数据传输的select查询被减少到大约1MB。

    Npgsql目前似乎不支持ssl压缩(v3.0.5)。

        2
  •  0
  •   Shay Rojansky    9 年前

    默认情况下,Npgsql 3.0.x使用TLS/SSL的内部实现,该实现(可能)不支持压缩。您可以通过设置 Use SSL Stream=true 以使Npgsql改用.NET SSLStream实现,这可能支持压缩。

    在3.1中,我们可以删除内部实现,默认返回SSLStream。