Eu herdei um servidor Postgres da empresa com clientes SSL. São cerca de 100 usuários até agora.
Dois problemas: Meu Ca Cert (root.crt) expira no próximo ano e parece ainda ser TlsV1.0. Portanto, uma atualização (renovação) é urgentemente necessária.
O que devo evitar é fazer novos certificados de cliente para todos os usuários em um. Seria um pesadelo para mim :-)
Então, procurei uma solução onde os certificados antigos e novos funcionariam, até que todos os certificados antigos expirassem. Gostei muito das dicas (também no Serverfault), mas nada funcionou até agora.
O que fiz até agora: usei a chave ca antiga (rootCa.key) e criei um novo root.crt) e usei a chave antiga do servidor (server.key) para criar um novo server.crt. Instalei a lista de revogação (root.crl), root.crt, server.crt e server.key no meu servidor de backup Postgres.
Eu posso me conectar com o certificado newUser.crt, mas não com os antigos... como eu esperava.
Eu pesquisei na web como o inferno e encontrei uma dica para mesclar certificados antigos e novos no servidor. Então eu combinei os certs com cat: cat oldRoot.crt >> root.crt para os outros arquivos também. A lista de revogação não funcionou, então comentei a linha: #ssl_crl_file = in Postgres.conf. Parece que o Postgres também funciona sem lista de revogação.
Resultado: Dependendo de qual certificado vem primeiro no server.crt, eu poderia conectar com certificados antigos ou novos, mas nunca com ambos. Para testá-lo, usei root.crt mesclado com oldServer.cert e também com newServer.cert. Ambos trabalharam com novos ou antigos.
Isso significa que um root.crt mesclado está funcionando bem, mas não um server.crt mesclado.
Eu verifiquei com openssl e merged root.crt e merged server.crt: openssl check -verbose -x509_strict -CAfile root.crt -CApath . old_cert.crt server.crt old_cert.crt: OK server.crt: OK
openssl check -verbose -x509_strict -CAfile root.crt -CApath . new_cert.crt server.crt new_cert.crt: OK server.crt: OK
Parece que o openssl pode gerenciar certificados mesclados, mas não o Postgres.
Alguma ideia de como resolver este problema?
Qualquer dica é apreciada.
Atenciosamente Schlauchi
servidor: Ubuntu 2104, servidor de backup Postgres13: Ubuntu 1604, Postgres13