Este documento fornece instruções para acionar manualmente a reemissão de certificados para seus endpoints da Web do Google Distributed Cloud (GDC) com isolamento físico.
Este documento é destinado a públicos-alvo do grupo de administradores de plataforma que querem gerenciar certificados da Web de PKI. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Antes de reemitir manualmente certificados da Web, você precisa ter as permissões necessárias e preparar o ambiente.
Solicitar papéis do IAM
Para criar, atualizar e excluir certificados da Web de PKI em um namespace, entre em contato com o administrador do IAM da organização para solicitar o papel Administrador de certificados TLS da Web (web-tls-cert-admin).
Considere os seguintes requisitos da conta:
- Um membro do grupo de operadores de infraestrutura precisa reemitir certificados da Web de PKI no namespace do sistema.
- Os membros do grupo de administradores de plataforma podem reemitir certificados da Web de PKI em todos os outros namespaces que gerenciam.
Preparar o ambiente
Faça o download e instale a CLI gdcloud, se ainda não tiver feito isso.
Gere um arquivo kubeconfig para configurar o acesso
kubectl.
Reemitir um certificado
É possível reemitir um certificado manualmente com uma atualização de anotação. Se o emissor do certificado padrão mudar, o Distributed Cloud não vai reemitir automaticamente os certificados assinados pelo emissor do certificado padrão anterior, a menos que o certificado esteja prestes a expirar.
Para acionar manualmente a reemissão de um certificado, use a CLI kubectl para realizar as seguintes etapas:
Defina a anotação
manual-reissuancecomorequestedpara oCertificatede destino. O exemplo a seguir atualiza o certificadodefault-wildcard-certno namespaceistio-system, que usa o emissor do certificado padrão atual:kubectl annotate --overwrite certificate.pki.security.gdc.goog default-wildcard-cert -n istio-system pki.security.gdc.goog/manual-reissuance='requested'Um valor de anotação
in-progresspode aparecer como um estado de transição enquanto o certificado está sendo reemitido. Aguarde até que o valor da anotaçãomanual-reissuancemostrefinished:kubectl -n istio-system get certificate.pki.security.gdc.goog/default-wildcard-cert -ojson | jq -r ' .metadata.annotations."pki.security.gdc.goog/manual-reissuance"'A saída será assim:
finishedVerifique o emissor do certificado. Ele precisa corresponder ao emissor mencionado na especificação do certificado ou, se não for especificado, o emissor precisa corresponder ao emissor padrão atual:
kubectl -n istio-system get certificate.pki.security.gdc.goog/default-wildcard-cert -ojson | jq -r ' .status.issuedBy'A saída será assim:
{ "name": "byo-cert-issuer", "namespace": "pki-system" }
Rotação manual do próprio certificado
Ao acionar e concluir uma rotação manual do próprio certificado (BYO, na sigla em inglês), você precisa assinar a solicitação de assinatura de certificado (CSR, na sigla em inglês) recém-gerada para um certificado BYO assinado anteriormente. Para mais informações, consulte Assinar o certificado BYO.
Durante a rotação, o Distributed Cloud cria um novo par de chaves privadas e públicas. Isso torna o certificado assinado enviado anteriormente incompatível com a nova CSR. Se a especificação do certificado não tiver mudado desde o upload inicial, o certificado enviado anteriormente permanecerá em uso até expirar. Se a especificação mudar, um dos seguintes eventos ocorrerá:
- O Distributed Cloud usa um certificado correspondente.
- Uma autoridade de certificação (CA) de fallback emite um novo certificado.
Exemplo de rotação manual do certificado BYO
No exemplo a seguir, você verá um certificado BYO assinado anteriormente acionado para rotação manual:
- O
byoCertStatusmostra que o valortypedo certificado éReady. O valor
reasonéIssuedcom um valorlastTransitionTimeanterior ao valor anterior:{ "byoCertStatus": { "csrStatus": { "conditions": [ { "lastTransitionTime": "2024-05-03T22:38:43Z", "message": "", "observedGeneration": 2, "reason": "WaitingForSigning", "status": "False", "type": "Ready" } ], "csr": "LS0tLS1CRUdJTiBDRVJ..." }, "signedCertStatus": { "conditions": [ { "lastTransitionTime": "2024-05-03T22:38:43Z", "message": "RawSubjectPublickKeyInfo does not match with the CSR", "observedGeneration": 2, "reason": "Rejected", "status": "False", "type": "Ready" } ] } }, ```
No exemplo a seguir, você verá a saída de um certificado BYO assinado anteriormente acionado para rotação manual:
- No
signedCertStatus, o camporeasonmostraRejectedporque o certificado assinado anteriormente não corresponde mais à nova CSR após a rotação. O
reasonda CSR declaraWaitingForSigning:"conditions": [ { "lastTransitionTime": "2024-05-03T08:42:10Z", "message": "Certificate is issued", "observedGeneration": 2, "reason": "Issued", "status": "True", "type": "Ready" } ], "errorStatus": { "errors": [ { "code": "PLATAUTH2002", "message": "Waiting for CSR signing" } ], "lastUpdateTime": "2024-05-03T22:38:43Z" }, "issuedBy": { "name": "byo-cert-issuer", "namespace": "pki-system" } }Gerenciar alertas de assinatura de certificado
Os alertas de assinatura de certificado para emissão, rotação e expiração iniciais precisam ser tratados pelo IO usando as etapas de solução de problemas documentadas nestas seções do runbook de PKI:
Para o errorCode da subCA:
PLATAUTH2001, consulte PLATAUTH-R2001.Para o errorCode do certificado BYO:
PLATAUTH2002, consulte PLATAUTH-R2002.