Ver los certificados emitidos

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

Solo puedes ver los certificados emitidos por AC de nivel empresarial.

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 la Autoridad certificadora, haz clic en Ver certificados emitidos para ver la lista de certificados emitidos por la AC.

    En la página Todos los certificados, aparecerá una lista de certificados. Los detalles que se muestran incluyen el estado del certificado, la AC emisora, el grupo de AC que contiene la AC, la fecha de vencimiento del certificado y mucho 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 --issuer-location ISSUER_LOCATION --ca CA_NAME

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

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 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 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 la AC de destino en la pestaña Administrador de AC.

  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. Para descargar la cadena de certificados, haz 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 con codificación 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 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. No se aplica la prueba de posesión para otras formas de solicitudes de certificados, como las solicitudes de CertificateConfig.

Es responsabilidad de las aplicaciones cliente que aceptan certificados validar si el titular del certificado posee la clave privada de ese certificado. El cumplimiento de las verificaciones de prueba de posesión durante la emisión de certificados es una forma de defensa en profundidad para proteger contra clientes que se comportan de forma incorrecta. La existencia de tales clientes, independientemente de si la AC verifica el comprobante de posesión, podría constituir una vulnerabilidad de seguridad.

¿Qué sigue?