Ce document explique comment révoquer un certificat à l'aide de Certificate Authority Service. La révocation d'un certificat le rend invalide avant sa date d'expiration, ce qui l'empêche d'être utilisé pour l'authentification. Vous pouvez révoquer un certificat si la clé privée est compromise, si le certificat est remplacé par un nouveau ou s'il n'est plus nécessaire (par exemple, lorsque le service pour lequel le certificat a été émis est mis hors service).
Ce document est destiné aux audiences du groupe d'opérateurs d'applications, telles que les développeurs d'applications ou les data scientists, qui gèrent les cycles de vie des certificats dans leur projet. Pour en savoir plus, consultez la documentation sur les audiences pour GDC sous air gap.
À propos de la révocation de certificats
CA Service prend en charge la révocation de certificats en publiant des listes de révocation de certificats (LRC). Une LRC est une liste de numéros de série de certificats qui ont été révoqués et ne sont plus approuvés. Par défaut, une nouvelle LRC est publiée toutes les 15 minutes. De plus, toute révocation de certificat réussie déclenche automatiquement la génération d'une nouvelle LRC.
Les certificats émis par CA Service incluent une extension appelée point de distribution de la LRC (CDP). Cette extension contient l'URL où vous pouvez trouver et télécharger la LRC de ce certificat. Les applications clientes utilisent cette URL pour récupérer la LRC et vérifier si le numéro de série d'un certificat est présent. Si le numéro de série apparaît dans la liste, le certificat est considéré comme non valide et la connexion doit être refusée.
Avant de commencer
Avant de pouvoir révoquer un certificat, vous devez demander les autorisations nécessaires et préparer votre environnement.
Demander des rôles IAM
Pour révoquer des certificats et afficher les demandes de révocation, contactez l'administrateur IAM de votre organisation pour demander le rôle CA Service Operation Manager (certificate-authority-service-operation-manager) dans l'espace de noms du projet de l'autorité de certification.
Préparer votre environnement
Téléchargez et installez la CLI gdcloud, si ce n'est pas déjà fait.
Générez un fichier kubeconfig pour configurer l'accès
kubectl.
Révoquer un certificat
La méthode de révocation d'un certificat dépend de l'activation ou non du mode ACME pour l'autorité de certification émettrice. Une fois que vous avez révoqué un certificat, son numéro de série apparaît dans toutes les futures LRC de cette autorité de certification jusqu'à son expiration.
Révoquer un certificat d'une autorité de certification compatible avec ACME
Chaque autorité de certification compatible avec ACME expose une URL de serveur ACME unique dans son état une fois qu'elle est prête. Pour révoquer un certificat d'une autorité de certification compatible avec ACME, vous devez utiliser un outil client ACME pour interagir avec cette URL à l'aide du protocole ACME.
Révoquez un certificat d'une autorité de certification compatible avec ACME :
Récupérez l'URL du serveur ACME pour votre autorité de certification :
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get certificateauthorities CA_NAME \ -n USER_PROJECT_NAMESPACE \ -ojson | jq -r '.status.acme.uri'Remplacez les éléments suivants :
MANAGEMENT_API_SERVER_KUBECONFIG: chemin d'accès au fichier kubeconfig du serveur d'API Management.CA_NAME: nom de l'autorité de certification compatible avec ACME (racine ou subordonnée).USER_PROJECT_NAMESPACE: espace de noms du projet.
Utilisez l'URL obtenue avec l'outil client ACME de votre choix pour émettre une demande de révocation. Pour en savoir plus, consultez la documentation de votre client ACME spécifique.
Révoquer un certificat d'une autorité de certification non compatible avec ACME
Si le mode ACME est désactivé sur l'autorité de certification, révoquez un certificat en créant et en appliquant une ressource personnalisée RevokeCertificateRequest :
Créez un fichier YAML de ressource personnalisée
RevokeCertificateRequest(par exemple,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: REASONRemplacez les éléments suivants :
REVOKE_CERT_REQ_NAME: nom défini par l'utilisateur pour la demande de révocation.USER_PROJECT_NAMESPACE: espace de noms du projet.CERT_REQ_NAME: nom de la ressourceCertificateRequestassociée au certificat que vous souhaitez révoquer.REASON: motif de la révocation. Les motifs valides sont les suivants :Unspecified,KeyCompromise,CaCompromise,AffiliationChanged,Superseded,CessationOfOperation,CertificateHold,RemoveFromCrl,PrivilegeWithdrawnetAaCompromise.
Appliquez la ressource personnalisée :
kubectl apply -f revoke-cert-request.yaml --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIGRemplacez MANAGEMENT_API_SERVER_KUBECONFIG par le chemin d'accès au fichier kubeconfig du serveur d'API Management.
Vérifiez que la demande de révocation de certificat est prête :
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))'Remplacez les éléments suivants :
MANAGEMENT_API_SERVER_KUBECONFIG: chemin d'accès au fichier kubeconfig du serveur d'API Management.USER_PROJECT_NAMESPACE: espace de noms du projet.REVOKE_CERT_REQ_NAME: nom de la demande de révocation.
La sortie ressemble à ceci :
{ "lastTransitionTime": "2025-08-19T23:20:22Z", "message": "RevokeCertificateRequest reconciled", "observedGeneration": 1, "reason": "Ready", "status": "True", "type": "Ready" }Le processus est terminé et le numéro de série du certificat est ajouté à la prochaine LRC générée.
Répertorier les demandes de révocation de certificats
Répertoriez toutes les ressources RevokeCertificateRequest dans un espace de noms de projet :
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
-n USER_PROJECT_NAMESPACE \
get revokecertificaterequests
Remplacez les éléments suivants :
MANAGEMENT_API_SERVER_KUBECONFIG: chemin d'accès au fichier kubeconfig du serveur d'API Management.USER_PROJECT_NAMESPACE: espace de noms du projet.
La sortie ressemble à ceci :
NAMESPACE NAME READY AGE
foo revoke-cert-req True 30s