我继承了带有 SSL 客户端的公司 Postgres 服务器。到目前为止,它的大约 100 个用户。
两个问题:我的Ca Cert(root.crt)明年到期,好像还是TlsV1.0。因此迫切需要升级(更新)。
我应该避免的是为所有用户制作新的客户端证书。这对我来说将成为一场噩梦:-)
因此,我寻找了一种新旧证书都可以使用的解决方案,直到所有旧证书都过期。我喜欢很多提示(也在 Serverfault 上),但到目前为止没有任何效果。
到目前为止我所做的:我使用旧的 ca 密钥 (rootCa.key) 并创建了一个新的 root.crt),我使用旧的服务器密钥 (server.key) 创建了一个新的 server.crt。我在我的 Postgres 备份服务器上安装了吊销列表 (root.crl)、root.crt、server.crt 和 server.key。
我可以连接 newUser.crt 证书,但不能连接旧证书....正如我所料。
我确实像地狱一样搜索了网络,并找到了在服务器上合并新旧证书的提示。因此,我将证书与 cat: cat oldRoot.crt >> root.crt 也用于其他文件。撤销列表不起作用,所以我在 Postgres.conf 中评论了 Line: #ssl_crl_file =。似乎 Postgres 也可以在没有撤销列表的情况下工作。
结果:根据 server.crt 中首先出现的证书,我可以连接旧证书或新证书,但不能同时连接两者。为了测试它,我使用了合并的 root.crt 与 oldServer.cert 以及 newServer.cert。两者都与新的或旧的一起工作。
这意味着,合并的 root.crt 工作正常,但不是合并的 server.crt。
我用 openssl 检查它并合并 root.crt 和合并 server.crt: openssl verify -verbose -x509_strict -CAfile root.crt -CApath 。old_cert.crt server.crt old_cert.crt:好的 server.crt:好的
openssl 验证 -verbose -x509_strict -CAfile root.crt -CApath 。new_cert.crt server.crt new_cert.crt: OK server.crt: OK
似乎 openssl 可以管理合并的证书,但不能管理 Postgres。
知道如何解决这个问题吗?
任何提示表示赞赏。
问候施劳奇
服务器:Ubuntu 2104、Postgres13 备份服务器:Ubuntu 1604、Postgres13