我有一个PostgreSQL服务器(Windows),它应该只接受SSL连接,但它不接受. 以下是我的pg_hba.conf文件的配置:

    # IPv4 local connections:
    hostssl all             all               0.0.0.0/0                 md5   

这是postgresql.conf的SSL部分:

    # - SSL -

    ssl = on 
    #ssl_ca_file = ''
    ssl_cert_file = 'server.crt'
    #ssl_crl_file = ''
    ssl_key_file = 'server.key'
    #ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
    #ssl_prefer_server_ciphers = on
    #ssl_ecdh_curve = 'prime256v1'
    #ssl_min_protocol_version = 'TLSv1.2'
    #ssl_max_protocol_version = ''
    #ssl_dh_params_file = ''
    #ssl_passphrase_command = ''
    #ssl_passphrase_command_supports_reload = off

在我读过的所有帖子中,似乎只用SSL激活连接就足够了,然而,如果我用npgsql(c#)从代码连接,它需要SSL,如果我使用另一个程序,例如DBeaver,它用SSL连接,但也没有SSL. 我做错什么了?我想只与SSL连接,而不是没有. 我希望我说得够清楚了.

我希望有一个解决方案.

编辑. 应禤浩焯的要求,我添加了整个pg_hba.conf文件.我go 掉了整个顶部,这只是一个 comments ,我认为它没有任何用处,这是剩下的,没有其他的了.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                       md5
# IPv4 local connections:
hostnossl all           all               all                   reject
hostssl all             all               0.0.0.0/0               md5   
#hostssl all           Sa|vA@Dat1          0.0.0.0/0                trust  
#host    all             all             127.0.0.1/32              password
# IPv6 local connections:
#host    all             all             ::1/128                   password  
# Allow replication connections from localhost, by a user with the
# replication privilege.

编辑2: (禤浩焯的要求太大,不便置评) 这是使用SSL的连接日志(log)

connection authorized: user=xxxxx database=postgres SSL enabled (protocol=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384, bits=256, compression=deactivated)

这是不带SSL的连接日志(log)

connection authorized: user=xxxxx database=postgres SSL enabled (protocol=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384, bits=256, compression=deactivated)

它们是相同的,我不明白怎么会发生这种情况,在没有SSL的连接中,没有对证书的引用,并且SSL被禁用.我正在使用Dbeaver进行测试,但我认为与其他工具没有什么不同

推荐答案

这个问题似乎毫无用处,因为只有DBeaver才能在没有SSl的情况下连接,如果我try 使用PSQL,它会拒绝,这要归功于@禤浩焯Klaver

Postgresql相关问答推荐

Keycloak和PostgreSQL

PostgreSQL解释分析实际时间不加总

PostgreSQL(container)中使用80K子分区表处理共享内存不足错误

复合索引列的顺序导致不同的计划

INSERT 语句返回策略违规(USING 表达式)

具有有限字母表的自定义字符串类型

未更改表上的 Postgres 环绕预防

如何将 grafana 与 Google Cloud SQL 集成

如何防止 PDO 将问号解释为占位符?

我可以在 Ruby on Rails 上编写 PostgreSQL 函数吗?

Rails:安装 pg gem 时出错

DbProviderFactory 与 Npgsql?

gem install pg 无法绑定到 libpq

PostgreSQL如何连接间隔值'2天'

在 postgresql 中,如何在 jsonb 键上返回布尔值而不是字符串?

使用 PostGIS 查找给定点的 n 个最近邻?

如何将主键添加到视图?

SQL 基本类型:integer vs int?

postgresql NOT ILIKE 子句不包含空字符串值

错误:无法在只读事务中执行 CREATE TABLE