Revocar un certificado

En este documento se describe cómo revocar un certificado mediante el Servicio de Autoridades de Certificación. Revocar un certificado lo invalida antes de su fecha de vencimiento, lo que impide que se use para la autenticación. Puedes revocar un certificado si la clave privada se ha puesto en riesgo, si el certificado se ha sustituido por otro o si ya no es necesario (por ejemplo, cuando se retira el servicio para el que se emitió el certificado).

Este documento está dirigido a los usuarios del grupo de operadores de aplicaciones, como los desarrolladores de aplicaciones o los científicos de datos, que gestionan los ciclos de vida de los certificados en sus proyectos. Para obtener más información, consulta el artículo Audiencias de la documentación de GDC en entornos aislados.

Acerca de la revocación de certificados

El Servicio de Autoridades de Certificación admite la revocación de certificados mediante la publicación de listas de revocación de certificados (CRL). Una CRL es una lista de números de serie de certificados que se han revocado y que ya no son de confianza. De forma predeterminada, se publica una nueva CRL cada 15 minutos. Además, cualquier revocación de certificado que se realice correctamente activa automáticamente la generación de una nueva CRL.

Los certificados emitidos por el Servicio de Autoridades de Certificación incluyen una extensión denominada punto de distribución de CRL (CDP). Esta extensión contiene la URL donde puedes encontrar y descargar la CRL de ese certificado. Las aplicaciones cliente usan esta URL para obtener la CRL y comprobar si el número de serie de un certificado está presente. Si el número de serie aparece en la lista, el certificado se considera no válido y la conexión debe rechazarse.

Antes de empezar

Para poder revocar un certificado, debes solicitar los permisos necesarios y preparar tu entorno.

Solicitar roles de gestión de identidades y accesos

Para revocar certificados y ver las solicitudes de revocación, ponte en contacto con el administrador de gestión de identidades y accesos de tu organización para solicitar el rol Gestor de operaciones del Servicio de Autoridades de Certificación (certificate-authority-service-operation-manager) en el espacio de nombres del proyecto de la autoridad de certificación.

Prepara tu entorno

Revocar un certificado

El método para revocar un certificado depende de si la autoridad de certificación (AC) emisora tiene habilitado el modo ACME. Después de revocar un certificado, su número de serie aparece en todas las CRLs futuras de esa AC hasta que el certificado caduque.

Revocar un certificado de una AC habilitada para ACME

Cada AC habilitada para ACME expone una URL de servidor ACME única en su estado una vez que está lista. Para revocar un certificado de una AC habilitada para ACME, debes usar una herramienta de cliente ACME para interactuar con esta URL mediante el protocolo ACME.

Para revocar un certificado de una AC habilitada para ACME, sigue estos pasos:

  1. Obtén la URL del servidor ACME de tu AC:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      get certificateauthorities CA_NAME \
      -n USER_PROJECT_NAMESPACE \
      -ojson | jq -r '.status.acme.uri'
    

    Haz los cambios siguientes:

    • MANAGEMENT_API_SERVER_KUBECONFIG: ruta al archivo kubeconfig del servidor de la API Management.
    • CA_NAME: nombre de la AC habilitada para ACME (raíz o subordinada).
    • USER_PROJECT_NAMESPACE: espacio de nombres del proyecto.
  2. Usa la URL obtenida con la herramienta de cliente ACME que prefieras para enviar una solicitud de revocación. Consulta la documentación de tu cliente ACME específico para obtener más información.

Revocar un certificado de una AC inhabilitada para ACME

Si el modo ACME está inhabilitado en la AC, revoca un certificado creando y aplicando un recurso personalizado RevokeCertificateRequest:

  1. Crea un archivo YAML de recurso personalizado RevokeCertificateRequest (por ejemplo, revoke-cert-request.yaml):

    apiVersion: pki.security.gdc.goog/v1
    kind: RevokeCertificateRequest
    metadata:
      name: REVOKE_CERT_REQ_NAME
      namespace: USER_PROJECT_NAMESPACE
    spec:
      certificateRequestRef:
        name: CERT_REQ_NAME
        namespace: USER_PROJECT_NAMESPACE
      reason: REASON
    

    Haz los cambios siguientes:

    • REVOKE_CERT_REQ_NAME: nombre definido por el usuario para la solicitud de revocación.
    • USER_PROJECT_NAMESPACE: espacio de nombres del proyecto.
    • CERT_REQ_NAME: nombre del recurso CertificateRequest asociado al certificado que quieres revocar.
    • REASON: motivo de la revocación. Los motivos válidos son los siguientes: Unspecified, KeyCompromise, CaCompromise, AffiliationChanged, Superseded, CessationOfOperation, CertificateHold, RemoveFromCrl, PrivilegeWithdrawn y AaCompromise.
  2. Aplica el recurso personalizado:

    kubectl apply -f revoke-cert-request.yaml --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG
    

    Sustituye MANAGEMENT_API_SERVER_KUBECONFIG por la ruta al archivo kubeconfig del servidor de la API Management.

  3. Verifica que la solicitud de revocación de certificado esté lista:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      -n USER_PROJECT_NAMESPACE \
      get revokecertificaterequest.pki.security.gdc.goog/REVOKE_CERT_REQ_NAME \
      -ojson | jq -r ' .status.conditions[] | select( .type as $id | "Ready" | index($id))'
    

    Haz los cambios siguientes:

    • MANAGEMENT_API_SERVER_KUBECONFIG: ruta al archivo kubeconfig del servidor de la API Management.
    • USER_PROJECT_NAMESPACE: espacio de nombres del proyecto.
    • REVOKE_CERT_REQ_NAME: nombre de la solicitud de revocación.

    El resultado es similar al siguiente:

    {
      "lastTransitionTime": "2025-08-19T23:20:22Z",
      "message": "RevokeCertificateRequest reconciled",
      "observedGeneration": 1,
      "reason": "Ready",
      "status": "True",
      "type": "Ready"
    }
    

    El proceso se ha completado y el número de serie del certificado se ha añadido a la siguiente CRL generada.

Mostrar las solicitudes de revocación de certificados

Muestra todos los recursos RevokeCertificateRequest en un espacio de nombres de proyecto:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
  -n USER_PROJECT_NAMESPACE \
  get revokecertificaterequests

Haz los cambios siguientes:

  • MANAGEMENT_API_SERVER_KUBECONFIG: ruta al archivo kubeconfig del servidor de la API Management.
  • USER_PROJECT_NAMESPACE: espacio de nombres del proyecto.

El resultado es similar al siguiente:

NAMESPACE    NAME                      READY   AGE
foo          revoke-cert-req           True    30s