Implementa un certificado autoadministrado en varias regiones

Puedes usar Certificate Manager para implementar un certificado autoadministrado global en un balanceador de cargas de aplicaciones interno entre regiones, lo que te ayudará a proteger tus aplicaciones internas con la administración de certificados SSL/TLS. En este instructivo, se te guiará por el proceso de configuración de esta implementación.

Antes de comenzar, asegúrate de haber creado un balanceador de cargas de aplicaciones interno entre regiones.

Si deseas implementar certificados autoadministrados en otros tipos de balanceador de cargas, consulta los siguientes documentos:

Objetivos

En este instructivo, se muestra cómo completar las siguientes tareas:

  • Sube un certificado autoadministrado al administrador de certificados.
  • Implementa el certificado en un balanceador de cargas compatible mediante un proxy HTTPS de destino.

Antes de comenzar

  1. Accede a tu Google Cloud cuenta. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. Instala Google Cloud CLI.

  6. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  7. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine, Certificate Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  11. Instala Google Cloud CLI.

  12. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  13. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init

Roles obligatorios

Asegúrate de tener los siguientes roles para completar las tareas de este instructivo:

  • Propietario del Administrador de certificados (roles/certificatemanager.owner)

    Obligatorio para crear y administrar recursos de Certificate Manager.

  • Administrador de balanceadores de cargas de Compute (roles/compute.loadBalancerAdmin) o Administrador de redes de Compute (roles/compute.networkAdmin)

    Obligatorio para crear y administrar el proxy HTTPS de destino.

Para obtener más información, consulta lo siguiente:

Crea el balanceador de cargas

En este instructivo, se supone que ya creaste y configuraste los backends, las verificaciones de estado, los servicios de backend y los mapas de URL del balanceador de cargas. Toma nota del nombre del mapa de URL, ya que lo necesitarás más adelante en este instructivo.

Si no creaste un balanceador de cargas de aplicaciones interno entre regiones, consulta Configura un balanceador de cargas de aplicaciones interno entre regiones con backends de grupos de instancias de VM.

Crea una clave privada y un certificado

Para crear una clave privada y un certificado, haz lo siguiente:

  1. Usa una autoridad certificadora (AC) externa de confianza para emitir el certificado junto con su clave asociada.

  2. Verifica que el certificado esté encadenado correctamente y que la raíz sea de confianza.

  3. Prepara los siguientes archivos codificados en PEM:

    • El archivo de certificado (CRT)
    • El archivo de claves privadas correspondiente (KEY)

Para obtener información sobre cómo solicitar y validar un certificado, consulta Crea una clave privada y un certificado.

Sube un certificado autoadministrado al administrador de certificados

Para subir el certificado al administrador de certificados, haz lo siguiente:

Console

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

    Ir a Certificate Manager

  2. En la pestaña Certificados, haz clic en Agregar certificado.

  3. En el campo Nombre del certificado, ingresa un nombre único para el certificado.

  4. Opcional: En el campo Descripción, ingresa una descripción para el certificado. La descripción te permite identificar el certificado.

  5. En Ubicación, selecciona Global.

  6. En Alcance, selecciona Todas las regiones.

  7. En Tipo de certificado, selecciona Crear certificado autoadministrado.

  8. En el campo Certificado, realiza una de las siguientes acciones:

    • Haz clic en el botón Subir y selecciona el archivo de certificado con formato PEM.
    • Copia y pega el contenido de un certificado con formato PEM. El contenido debe comenzar con -----BEGIN CERTIFICATE----- y terminar con -----END CERTIFICATE-----.
  9. En el campo Certificado de clave privada, realiza una de las siguientes acciones:

    • Haz clic en el botón Subir y selecciona tu clave privada. Tu clave privada debe tener el formato PEM y no estar protegida con una frase de contraseña.
    • Copia y pega el contenido de una clave privada con el formato PEM. Las claves privadas deben comenzar con -----BEGIN PRIVATE KEY----- y terminar con -----END PRIVATE KEY-----.
  10. En el campo Etiquetas, especifica las etiquetas que se asociarán con el certificado. Para agregar una etiqueta, haz clic en Agregar etiqueta y especifica una clave y un valor para tu etiqueta.

  11. Haz clic en Crear.

    El certificado nuevo aparecerá en la lista de certificados.

gcloud

Para crear un certificado autoadministrado entre regiones, usa el certificate-manager certificates create comando:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --certificate-file="CERTIFICATE_FILE" \
    --private-key-file="PRIVATE_KEY_FILE" \
    --scope=all-regions

Reemplaza lo siguiente:

  • CERTIFICATE_NAME: el nombre del certificado.
  • CERTIFICATE_FILE: la ruta de acceso y el nombre de archivo del archivo de certificado CRT.
  • PRIVATE_KEY_FILE: la ruta de acceso y el nombre de archivo del archivo de claves privadas KEY.

Terraform

Para subir un certificado autoadministrado, puedes usar un google_certificate_manager_certificate recurso con el self_managed bloque.

API

Para subir el certificado, realiza una solicitud POST al método certificates.create de la siguiente manera:

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
  self_managed: {
    pem_certificate: "PEM_CERTIFICATE",
    pem_private_key: "PEM_KEY",
    scope: "ALL_REGIONS"
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu Google Cloud proyecto.
  • CERTIFICATE_NAME: el nombre del certificado.
  • PEM_CERTIFICATE: el certificado PEM.
  • PEM_KEY: la clave PEM.

Implementa el certificado autoadministrado en un balanceador de cargas

Para implementar el certificado autoadministrado global, adjúntalo directamente al proxy de destino.

Adjunta el certificado directamente al proxy de destino

Puedes adjuntar el certificado a un proxy de destino nuevo o a uno existente.

Para adjuntar el certificado a un proxy de destino nuevo, usa el gcloud compute target-https-proxies create comando:

gcloud compute target-https-proxies create PROXY_NAME \
    --url-map=URL_MAP \
    --certificate-manager-certificates=CERTIFICATE_NAME \
    --global

Reemplaza lo siguiente:

  • PROXY_NAME: el nombre del proxy de destino.
  • URL_MAP: el nombre del mapa de URL. Creaste el mapa de URL cuando creaste el balanceador de cargas.
  • CERTIFICATE_NAME: el nombre del certificado.

Para adjuntar el certificado a un proxy HTTPS de destino existente, usa el gcloud compute target-https-proxies update comando. Si no conoces el nombre del proxy de destino existente, ve a la página **Proxies de destino** y toma nota del nombre del proxy de destino.

gcloud compute target-https-proxies update PROXY_NAME \
    --global \
    --certificate-manager-certificates=CERTIFICATE_NAME

Después de crear o actualizar el proxy de destino, ejecuta el siguiente comando para verificarlo:

gcloud compute target-https-proxies list

Limpia

Para evitar que se apliquen cargos a tu Google Cloud cuenta por los recursos que usaste en este instructivo, borra el certificado subido:

gcloud certificate-manager certificates delete CERTIFICATE_NAME

Reemplaza CERTIFICATE_NAME por el nombre del certificado de destino.

Si no planeas usar el balanceador de cargas, bórralo junto con sus recursos. Consulta Limpia una configuración de balanceo de cargas setup.

¿Qué sigue?