Ver certificados emitidos

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

Solo puedes ver los certificados emitidos por CAs de nivel Enterprise.

Ver certificados emitidos

Consola

  1. En la Google Cloud consola, ve a la página Servicio de autoridad de certificación.

    Ir al Servicio de Autoridades de Certificación

  2. Haga clic en la pestaña Administrador de autoridades de certificación.

  3. En la página Autoridades de certificación, haga clic en el nombre de la CA.

  4. En la parte inferior de la página de detalles de la autoridad de certificación, haz clic en Ver certificados emitidos para ver la lista de certificados emitidos por la AC.

    En la página Todos los certificados, se muestra una lista de certificados. Entre los detalles que se muestran se incluyen el estado del certificado, la CA emisora, el grupo de CAs que contiene la CA y la fecha de vencimiento del certificado.

gcloud

Para obtener una lista de todos los certificados emitidos por una autoridad de certificación concreta de un grupo de autoridades de certificación, usa el siguiente comando gcloud:

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

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

Para obtener una lista de todos los certificados de todas las CAs de una ubicación determinada, utiliza 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. Para obtener más información, consulta el artículo Configurar la autenticación en 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. Para obtener más información, consulta el artículo Configurar la autenticación en 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 el servicio de AC, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en 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)

Ver todos los certificados emitidos en tu proyecto

Consola

  1. En la Google Cloud consola, ve a la página Servicio de autoridad de certificación.

    Ir al Servicio de Autoridades de Certificación

  2. Haga clic en la pestaña Gestor de certificados privados.

    En la página Todos los certificados, se muestra una lista de certificados.

    Entre los detalles que se muestran se incluyen el estado del certificado, la CA emisora, el grupo de CAs que contiene la CA, la fecha de vencimiento del certificado y más. Puede filtrar los certificados mediante cualquiera de los parámetros.

Ver los detalles de un solo certificado

Consola

  1. En la Google Cloud consola, ve a la página Servicio de autoridad de certificación.

    Ir al Servicio de Autoridades de Certificación

  2. Elige la AC de destino en la pestaña Gestor de ACs.

  3. Haz clic en el nombre de la autoridad certificadora.

  4. En la parte inferior de la página de detalles de la autoridad de certificación, haz clic en Ver certificados emitidos para ver la lista de certificados emitidos.

  5. En la columna Acciones, haga clic en del certificado que quiera descargar.

  6. En Descargar, haz clic en Certificado. Puedes descargar la 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 --issuer-location ISSUER_LOCATION

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

Para exportar la cadena de certificados X.509 codificada en PEM a un archivo, ejecuta el siguiente comando:

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

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

Prueba de posesión de certificados

La prueba de posesión de la clave privada asegura que el solicitante de un certificado tiene la clave privada de ese certificado. El servicio de CA comprueba la prueba de posesión solo si el solicitante proporciona una CSR PKCS #10 de acuerdo con la RFC 2986. No se exige la prueba de posesión para otros tipos de solicitudes de certificados, como las solicitudes de CertificateConfig.

Es responsabilidad de las aplicaciones cliente que aceptan certificados validar si el propietario del certificado posee la clave privada de ese certificado. Realizar comprobaciones de prueba de posesión durante la emisión de certificados es una forma de defensa en profundidad para protegerse frente a clientes que no se comportan correctamente. La existencia de estos clientes, independientemente de si la AC comprueba la prueba de posesión, podría constituir una vulnerabilidad de seguridad.

Siguientes pasos