Skip to content

Rotação de certificados ​

Os certificados ICP-Brasil, as chaves e os segredos da plataforma ficam no cofre de segredos da nuvem da instituição (AWS Secrets Manager ou Azure Key Vault). O cluster os recebe pelo External Secrets Operator. Por isso, a troca é feita pela CLI e publicada por um deploy, e não direto no Kubernetes: uma alteração manual no cluster seria desfeita na próxima sincronização.

Quando trocar ​

  • Antes do vencimento. finnest opin directory certs e o finnest doctor avisam quando faltam 30 dias ou menos.
  • Imediatamente, se houver suspeita de comprometimento de uma chave.
  • Quando o cadastro no Diretório de Participantes mudar.

Itens de material regulado ​

MaterialItens
Certificado de transporte BRCAC (gateway mTLS)brcac-tls-cert-pem, brcac-tls-key-pem
Certificado de assinatura BRSEALkeycloak-brseal-certificate-pem, keycloak-brseal-private-key-pem
Cadeias de confiança ICP-Brasilicp-brasil-ca-crt, icp-brasil-roots-pem, icp-brasil-intermediates-pem
Criptografia do request objectkeycloak-opin-request-object-enc-private-key-pem, keycloak-opin-request-object-enc-certificate-pem
Receptoraopin-receiver-jwks-json, opin-receiver-jws-private-jwk-json, opin-receiver-jwe-private-jwk-json, opin-receiver-client-cert-pem, opin-receiver-client-key-pem

Os itens exigidos dependem do papel da instituição. O Configuration Workspace mostra os que faltam para o seu papel.

Passo a passo ​

  1. Grave o material novo. Os arquivos precisam pertencer ao operador e ter permissão 0600. Para um certificado e sua chave, grave o par de uma vez:

    bash
    ENVIRONMENT=sandbox  # ou: prod
    finnest secrets write brcac-tls-cert-pem --file ./brcac.crt --pair-file ./brcac.key --environment="$ENVIRONMENT" --yes

    Para os outros itens, use --file, ou --stdin para valores lidos da entrada padrão. Também é possível fazer tudo pelo Configuration Workspace:

    bash
    finnest config workspace open --goal=apply
  2. Confira:

    bash
    CLOUD=aws ENVIRONMENT=sandbox  # ou: azure, prod
    finnest secrets list --scope regulatory --cloud="$CLOUD" --environment="$ENVIRONMENT"
    finnest doctor --cloud="$CLOUD" --environment="$ENVIRONMENT"

    O doctor valida a cadeia, o par certificado/chave, os nomes do certificado e o vencimento. Veja Material regulado.

  3. Publique com um deploy:

    bash
    CLOUD=aws ENVIRONMENT=sandbox  # ou: azure, prod
    finnest deploy --cloud="$CLOUD" --environment="$ENVIRONMENT" --preview
    finnest deploy --cloud="$CLOUD" --environment="$ENVIRONMENT" --apply --yes

    O deploy grava o material no cofre de segredos da nuvem, e o External Secrets Operator o leva ao cluster.

  4. Atualize o Diretório de Participantes quando a troca envolver um certificado ou chave pública cadastrada lá, seguindo o processo do Diretório. Depois confira o cadastro com finnest opin directory diff e finnest opin directory certs, informando as credenciais do Diretório (veja a referência de finnest opin).

  5. Verifique com finnest smoke e, no Open Insurance, finnest opin verify.

Cuidados ​

  • A chave de criptografia de dados da receptora não pode ser trocada enquanto existirem credenciais de gestão de DCR que dependam dela. A CLI recusa a troca nesse caso.
  • Nunca grave chaves privadas em repositórios, tickets ou logs. A CLI não aceita valores secretos na linha de comando (--value), só por arquivo ou pela entrada padrão.
  • finnest secrets rotate ainda não está disponível. Use secrets write seguido de deploy.

Finnest Power — plataforma Open Finance Brasil e Open Insurance Brasil. Contato: oi@finnest.com.br