Ver los certificados emitidos

En esta página, se explica cómo puedes ver los certificados emitidos con la consola de Google Cloud, Google Cloud CLI y bibliotecas cliente de Cloud.

Ver los certificados emitidos

Console

  1. En la consola de Google Cloud, ve a la página Certificate Authority Service.

    Ir a Certificate Authority Service

  2. Haz clic en la pestaña Administrador de AC.

  3. En la página Autoridades certificadoras, haz clic en el nombre de la AC.

  4. En la parte inferior de la página de detalles de Autoridad certificadora, haz clic en Consulta los certificados emitidos para ver la lista de certificados emitidos por la AC.

    Aparecerá una lista de certificados en la página Todos los certificados. El los detalles que se muestran incluyen el estado del certificado, la AC emisora y el grupo de AC que contiene la AC, la fecha de vencimiento del certificado y más.

gcloud

Para enumerar todos los certificados emitidos por una AC en particular en un grupo de AC, usa el siguiente comando gcloud:

gcloud privateca certificates list --issuer-pool ISSUER_POOL --ca CA_NAME

Para obtener más información sobre el comando gcloud privateca certificates list, consulta la lista de certificados de gcloud privateca.

Para enumerar todos los certificados de todas las AC en una ubicación determinada, usa el siguiente comando gcloud:

gcloud privateca certificates list --location LOCATION

Go

Para autenticarte en el servicio de AC, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import (
	"context"
	"fmt"
	"io"

	privateca "cloud.google.com/go/security/privateca/apiv1"
	"cloud.google.com/go/security/privateca/apiv1/privatecapb"
	"google.golang.org/api/iterator"
)

// List Certificates present in the given CA pool.
func listCertificates(
	w io.Writer,
	projectId string,
	location string,
	caPoolId string) error {
	// projectId := "your_project_id"
	// location := "us-central1"		// For a list of locations, see: https://cloud.google.com/certificate-authority-service/docs/locations.
	// caPoolId := "ca-pool-id"			// The CA Pool id in which the certificate exists.

	ctx := context.Background()
	caClient, err := privateca.NewCertificateAuthorityClient(ctx)
	if err != nil {
		return fmt.Errorf("NewCertificateAuthorityClient creation failed: %w", err)
	}
	defer caClient.Close()

	fullCaName := fmt.Sprintf("projects/%s/locations/%s/caPools/%s", projectId, location, caPoolId)

	// Create the ListCertificatesRequest.
	// See https://pkg.go.dev/cloud.google.com/go/security/privateca/apiv1/privatecapb#ListCertificatesRequest.
	req := &privatecapb.ListCertificatesRequest{Parent: fullCaName}

	it := caClient.ListCertificates(ctx, req)
	for {
		resp, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("unable to get the list of cerficates: %w", err)
		}

		fmt.Fprintf(w, " - %s (common name: %s)", resp.Name,
			resp.CertificateDescription.SubjectDescription.Subject.CommonName)
	}

	return nil
}

Java

Para autenticarte en el servicio de AC, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


import com.google.cloud.security.privateca.v1.CaPoolName;
import com.google.cloud.security.privateca.v1.Certificate;
import com.google.cloud.security.privateca.v1.CertificateAuthorityServiceClient;
import java.io.IOException;

public class ListCertificates {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // location: For a list of locations, see:
    // https://cloud.google.com/certificate-authority-service/docs/locations
    // poolId: Id of the CA pool which contains the certificates to be listed.
    String project = "your-project-id";
    String location = "ca-location";
    String poolId = "ca-pool-id";
    listCertificates(project, location, poolId);
  }

  // List Certificates present in the given CA pool.
  public static void listCertificates(String project, String location, String poolId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the `certificateAuthorityServiceClient.close()` method on the client to safely
    // clean up any remaining background resources.
    try (CertificateAuthorityServiceClient certificateAuthorityServiceClient =
        CertificateAuthorityServiceClient.create()) {

      CaPoolName caPool =
          CaPoolName.newBuilder()
              .setProject(project)
              .setLocation(location)
              .setCaPool(poolId)
              .build();

      // Retrieve and print the certificate names.
      System.out.println("Available certificates: ");
      for (Certificate certificate :
          certificateAuthorityServiceClient.listCertificates(caPool).iterateAll()) {
        System.out.println(certificate.getName());
      }
    }
  }
}

Python

Para autenticarte en CA Service, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


import google.cloud.security.privateca_v1 as privateca_v1


def list_certificates(
    project_id: str,
    location: str,
    ca_pool_name: str,
) -> None:
    """
    List Certificates present in the given CA pool.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        location: location you want to use. For a list of locations, see: https://cloud.google.com/certificate-authority-service/docs/locations.
        ca_pool_name: name of the CA pool which contains the certificates to be listed.
    """

    caServiceClient = privateca_v1.CertificateAuthorityServiceClient()

    ca_pool_path = caServiceClient.ca_pool_path(project_id, location, ca_pool_name)

    # Retrieve and print the certificate names.
    print(f"Available certificates in CA pool {ca_pool_name}:")
    for certificate in caServiceClient.list_certificates(parent=ca_pool_path):
        print(certificate.name)

Cómo ver los detalles de un solo certificado

Console

  1. En la consola de Google Cloud, ve a la página Certificate Authority Service.

    Ir a Certificate Authority Service

  2. Elige tu AC de destino en la pestaña CA Manager.

  3. Haz clic en el nombre de la AC.

  4. En la parte inferior de la página de detalles de la Autoridad certificadora, haz clic en Ver certificados emitidos para ver la lista de certificados emitidos.

  5. Haz clic en en la columna Acciones del certificado que deseas descargar.

  6. En Descargar, haz clic en Certificado. Puedes descargar el Cadena de certificados haciendo clic en Cadena de certificados.

gcloud

Para ver la descripción completa de un certificado, ejecuta el siguiente comando:

gcloud privateca certificates describe CERT_NAME \
    --issuer-pool POOL_ID

Para obtener más información sobre el comando gcloud privateca certificates describe, consulta gcloud privateca certificados describe.

Para exportar la cadena de certificados X.509 con codificación PEM a un archivo, ejecuta el comando siguiente comando:

gcloud privateca certificates export CERT_NAME \
    --issuer-pool POOL_ID \
    --include-chain \
    --output-file certificate-file

Para obtener más información sobre el comando gcloud privateca certificates export, consulta la exportación de certificados de gcloud privateca.

Comprobante de posesión de los certificados

La prueba de posesión de la clave privada garantiza que el solicitante de un certificado tenga la clave privada de ese certificado. El servicio de AC verifica la prueba de posesión solo si el solicitante proporciona una CSR PKCS #10 según la RFC 2986. Comprobante de posesión para otras formas de solicitudes de certificado, como solicitudes de CertificateConfig no se aplica de manera forzosa.

Es responsabilidad de las aplicaciones cliente que aceptan certificados para validar si el titular del certificado posee la clave privada de ese certificado. Hacer cumplir las verificaciones de prueba de posesión durante la emisión del certificado es una forma de defensa en profundidad para proteger a los clientes contra el mal comportamiento. La existencia de estos clientes, sin importar si la AC verifica una prueba de posesión, constituyen una vulnerabilidad de seguridad.

¿Qué sigue?