The*_*God 5 postgresql ssl psql
我正在尝试使用 ssl 设置 PostgreSQL 数据库服务器。或者更具体地说,我已经成功设置了服务器并且 ssl 正在工作......只要没有中间证书。如果有中间证书,它就不起作用。
背景/设置:
CA.cert。intermediate.csr并创建intermediate.cert.postgres.csr并创建一个postgres.cert.CA.cert、和postgres.key。postgres.certCA.cert被设置为受信任的证书。postgresql.conf已被修改为指向上述文件。intermediate.cert来签署 aclient_0.csr并创建一个client_0.cert.CA.cert来签署 aclient_1.csr并创建一个client_1.cert.chain.cert:cat client_0.cert intermediate.cert > chain.cert已使用正确的扩展,两个客户端证书都将其通用名称设置为所连接的数据库的(用户名)。
乐趣,又名问题。
psql "sslmode=require hostname=(host) db=(db) sslcert=client_1.cert sslkey=client_1.key" -U (username): 巨大的成功!
psql "sslmode=require hostname=(host) db=(db) sslcert=client_0.cert sslkey=client_0.key" -U (username)alert unknown ca: 。这是预期的,client_0.cert未由 签署CA.cert。
psql "sslmode=require hostname=(host) db=(db) sslcert=chain.cert sslkey=client_0.key" -U (username)alert unknown ca: 。呃哦。
困惑
连接到启用 ssl 且存在中间证书的 postgresql 实例的文档:
在某些情况下,客户端证书可能由“中间”证书颁发机构签名,而不是由服务器直接信任的证书颁发机构签名。要使用此类证书,请将签名机构的证书附加到 postgresql.crt 文件,然后是其父机构的证书,依此类推,直到服务器信任的证书机构“root”或“intermediate”,即由服务器的 root.crt 文件中的证书签名。 https://www.postgresql.org/docs/9.6/static/libpq-ssl.html
我也尝试过整条链,client inter ca > chain但什么也没做。
问题
我在这里做错了什么?
谢谢你,
| 归档时间: |
|
| 查看次数: |
1326 次 |
| 最近记录: |