Renovar os certificados do cluster PostgreSQL¶
Preparativos¶
Renovação do certificado¶
Antes de realizar qualquer ação nos nós do cluster PostgreSQL, prepare novos certificados para cada um dos nós do cluster. Como recordatório, os certificados devem cumprir várias restrições especificadas nos pré-requisitos do cluster PostgreSQL.
Se quiser efetuar a alteração em funcionamento, sem impacto na produção, deve reunir as seguintes condições:
- A autoridade de certificação não foi renovada desde a última geração dos certificados dos nós PostgreSQL
- A autoridade de certificação não expirará durante o período de validade dos novos certificados
- Continua a ser possível gerar e assinar certificados com a mesma autoridade de certificação que foi utilizada quando os certificados anteriores dos nós PostgreSQL foram gerados
- Os certificados dos nós PostgreSQL ainda não expiraram
Se estas condições estiverem reunidas, pode considerar renovar os certificados em funcionamento, sem interromper a produção.
Para regenerar os certificados com a PKI openssl indicada, opcionalmente, na documentação de instalação do cluster PostgreSQL, deve reutilizar a chave da autoridade de certificação e depois repetir os comandos de geração dos certificados.
Se não for possível renovar os certificados em funcionamento e utilizar uma PKI através do openssl, recomendamos que crie uma nova.
Preparar os certificados¶
Terá de enviar para /tmp/ o certificado da autoridade de certificação raiz com a extensão .crt para cada um dos nós PostgreSQL.
Terá igualmente de enviar para /tmp/ o certificado e a respetiva chave privada para cada um dos nós PostgreSQL. Se apenas dispuser de um ficheiro .p12, execute os comandos seguintes para extrair o certificado (psql.crt) e a chave privada (psql.key):
1 2 | |
Substitua nos comandos anteriores P12_CERT pelo nome do seu ficheiro de certificado .p12.
Renovação do certificado¶
Atenção!
Se puder e desejar efetuar uma atualização dos certificados em funcionamento, com uma indisponibilidade mínima da produção (1 minuto + fim de sessão dos utilizadores), terá de:
- Renovar os certificados sequencialmente em cada nó
- Renovar os certificados apenas num nó
REPLICA(ver como obter informações do nóLEADER) - Ter sempre, no mínimo, dois nós PostgreSQL operacionais e trabalhar no terceiro
- Para trabalhar no nó
LEADER, comute oLEADERpara outro nó; esta ação provocará o fim da sessão dos utilizadores e a indisponibilidade da plataforma durante cerca de 1 minuto
Para simplificar as ações seguintes, personalize as variáveis dos comandos abaixo com os seus valores (altere a personalização para cada nó PostgreSQL):
| Valor | Variável | Definição |
|---|---|---|
PSQL_CERT |
Novo certificado do nó PostgreSQL. | |
PSQL_KEY |
Chave associada ao novo certificado do nó PostgreSQL. | |
PSQL_CA |
Certificado da autoridade de certificação raiz que foi utilizada para gerar o certificado do nó PostgreSQL. |
Ligue-se por SSH como root ao nó PostgreSQL cujos certificados quer atualizar e execute os comandos seguintes para substituir os certificados:
1 2 3 4 5 6 7 8 9 10 | |
Para finalizar a alteração dos certificados, deve reiniciar o nó PostgreSQL:
1 | |