Usa certificados SSL que administra Google

En esta página, se explica cómo crear y usar certificados SSL administrados por Google.

Los certificados SSL administrados por Google son certificados de validación de dominio (DV) que Google Cloud obtiene y administra para tus dominios. Admiten varios nombres de host en cada certificado, y Google los renueva automáticamente.

Se requiere un certificado SSL para ciertos tipos de balanceadores de cargas de Google Cloud, incluidos los siguientes:

También puedes usar certificados SSL administrados con Google Kubernetes Engine. Para obtener más información, consulta Usa certificados SSL administrados por Google.

Puedes crear un certificado administrado por Google antes o después de crear el balanceador de cargas, o bien durante el proceso de creación. En esta página, se supone que creas el certificado antes o después de crear el balanceador de cargas, no durante el proceso. Para crear el certificado mientras creas el balanceador de cargas, consulta las guías prácticas del balanceador de cargas.

Varios dominios

Se admiten varios nombres alternativos de entidad. Cada certificado SSL administrado por Google admite hasta la cantidad máxima de dominios por certificado SSL administrado por Google.

Si tienes más de la cantidad máxima de dominios, debes solicitar varios certificados administrados por Google. Por ejemplo, si intentas crear un certificado administrado por Google con (la cantidad máxima + 1) dominios, Google no emite ningún certificado. En cambio, debes crear dos o más certificados administrados por Google y especificar de forma explícita qué dominios están asociados con cada certificado.

Google Cloud implementa la indicación del nombre del servidor (SNI), como se define en RFC 6066.

Si alguno de los dominios o subdominios de un certificado administrado no dirige a la dirección IP del balanceador de cargas, el proceso de renovación falla. Para evitar que falle la renovación, asegúrate de que todos los dominios y los subdominios apunten a la dirección IP del balanceador de cargas.

Antes de comenzar

Permisos

Para seguir esta guía, debes poder crear y modificar certificados SSL en tu proyecto. Puedes hacer esto si se cumple una de las siguientes condiciones:

Paso 1. Crea un certificado SSL administrado por Google

Puedes crear un certificado administrado por Google antes o después de crear el balanceador de cargas, o bien durante el proceso de creación. Durante el proceso de creación de un balanceador de cargas en Cloud Console, puedes usar Cloud Console para crear el certificado. Como alternativa, puedes crear el certificado antes o después de crear el balanceador de cargas. En este paso, se muestra cómo crear un certificado que luego puedes agregar a uno o más balanceadores de cargas.

Si ya creaste el certificado SSL administrado por Google, puedes omitir este paso.

Console

Puedes trabajar con certificados SSL global en la pestaña Certificados de la página Balanceo de cargas.

  1. Ve a la página Certificados en Google Cloud Console.
    Ir a la pestaña Certificados
  2. Haz clic en Crear certificado SSL.
  3. Ingresa un nombre y una descripción opcional para el certificado.
  4. Selecciona Crear certificado administrado por Google.
  5. Agrega los dominios.
  6. Haz clic en Crear.

gcloud

Si quieres crear un certificado SSL global administrado por Google para un balanceador de cargas HTTP(S) externo o un balanceador de cargas del proxy SSL, usa el comando gcloud compute ssl-certificates create:

gcloud compute ssl-certificates create CERTIFICATE_NAME \
    --description=DESCRIPTION \
    --domains=DOMAIN_LIST \
    --global

Reemplaza los siguientes marcadores de posición por valores válidos:

  • CERTIFICATE_NAME: Un nombre para el certificado SSL global
  • DESCRIPTION: Una descripción para el certificado SSL global
  • DOMAIN_LIST: Un nombre de dominio único o una lista de nombres de dominio delimitada por comas para usar en este certificado

api

Crea el método sslCertificates.insert del recurso de certificado administrado por Google y reemplaza PROJECT_ID por el ID del proyecto.

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/sslCertificates
{
  "name": "ssl-certificate-name",
  "managed": {
    "domains": [
      "www.example.com"
    ]
  },
  "type": "MANAGED"
}

Comprueba el estado del certificado SSL administrado por Google

Console

Puedes verificar el estado de los certificados SSL globales en la pestaña Certificados de la página Balanceo de cargas.

  1. Ve a la página Certificados en Google Cloud Console.
    Ir a la página Certificados
  2. Filtra la lista de certificados SSL (opcional).
  3. Verifica la columna Estado.
  4. Para ver más detalles, haz clic en el nombre del certificado.

gcloud

Para determinar el estado de tu certificado administrado por Google, puedes usar los comandos gcloud compute. Después de ejecutar el comando adecuado, comprueba lo siguiente:

  • El estado administrado
  • El estado del dominio

Para enumerar tus certificados SSL administrados por Google, usa el comando gcloud compute ssl-certificates list con la marca --global.

gcloud compute ssl-certificates list \
   --global

Puedes usar el comando gcloud compute ssl-certificates describe y reemplazar CERTIFICATE_NAME:

gcloud compute ssl-certificates describe CERTIFICATE_NAME \
   --global \
   --format="get(name,managed.status, managed.domainStatus)"

En este punto, el estado del certificado y el estado del dominio son PROVISIONING. Tras completar los pasos de esta página, los estados cambian a ACTIVE.

Para obtener más información sobre los estados, consulta la página de solución de problemas.

Paso 2: Crea o actualiza el balanceador de cargas

Para convertirse en ACTIVE, el certificado SSL administrado por Google debe estar asociado con un balanceador de cargas, en particular, el proxy de destino del balanceador de cargas.

Después de crear tu certificado SSL y se encuentra en el estado PROVISIONING, puedes usarlo durante la creación de tu balanceador de cargas, como se describe en las siguientes guías prácticas:

También puedes usarlo para actualizar un balanceador de cargas existente, como se describe a continuación:

Console

Cuando actualizas un balanceador de cargas de HTTP(S) externo o de proxy SSL mediante Google Cloud Console, Google Cloud asocia de forma automática el certificado SSL con el proxy de destino correcto.

  1. Ve a la página Balanceo de cargas en Google Cloud Console.
    Ir a la página Balanceo de cargas
  2. Haz clic en el nombre del balanceador de cargas.
  3. Haz clic en Editar .
  4. Haz clic en Configuración de frontend.
  5. Haz clic en el frontend correcto (debe ser HTTPS, HTTP/2 o SSL).
  6. Haz clic en Certificados adicionales y selecciona el certificado administrado por Google en la lista desplegable.
  7. Haz clic en Crear.

gcloud

A fin de asociar un certificado SSL con el proxy HTTPS de destino para un balanceador de cargas de HTTP(S) externo, usa el comando gcloud compute target-https-proxies update con las marcas --global-ssl-certificates y --global:

gcloud compute target-https-proxies update TARGET_PROXY_NAME \
    --ssl-certificates SSL_CERTIFICATE_LIST \
    --global-ssl-certificates \
    --global

A fin de asociar un certificado SSL con el proxy SSL de destino para un balanceador de cargas de proxy SSL, usa el siguiente comando gcloud compute target-ssl-proxies update:

gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \
    --ssl-certificates SSL_CERTIFICATE_LIST

Reemplaza los marcadores de posición por valores válidos:

Cada proxy HTTPS o proxy SSL de destino debe hacer referencia al menos a un certificado SSL. Un proxy de destino puede hacer referencia a más de un certificado SSL. Para obtener más información, consulta Grupos de destino y proxies de destino en los límites y las cuotas de recursos del balanceo de cargas.

Paso 3: Verifica la asociación del proxy de destino

Después de crear o actualizar el balanceador de cargas, puedes asegurarte de que el certificado SSL esté asociado al proxy de destino del balanceador de cargas.

Si aún no conoces el nombre del proxy de destino, usa elgcloud compute target-https-proxies list ygcloud compute target-ssl-proxies list comandos para enumerar los proxies de destino en tu proyecto.

Verifica la asociación entre el certificado SSL y el proxy de destino mediante la ejecución del siguiente comando.

Para balanceadores de cargas de HTTPS externos, ejecuta este comando:

gcloud compute target-https-proxies describe TARGET_HTTPS_PROXY_NAME \
    --global \
    --format="get(sslCertificates)"

Para balanceadores de cargas de proxy SSL, ejecuta este comando:

gcloud compute target-ssl-proxies describe TARGET_SSL_PROXY_NAME \
    --format="get(sslCertificates)"

En este punto, es posible que el estado del certificado administrado por Google siga siendo PROVISIONING. Google Cloud está trabajando con la autoridad certificada para emitir el certificado. El aprovisionamiento de un certificado administrado por Google puede tomar hasta 60 minutos.

Paso 4: Actualiza los registros AAAA y A del DNS para que apunten a la dirección IP del balanceador de cargas

Tus registros DNS se pueden administrar en el sitio de tu registrador, host de DNS o ISP. Donde se administren tus registros DNS, asegúrate de agregar o actualizar los registros A de DNS (para IPv4) y los registros AAAA DNS (para IPv6) para tus dominios y cualquier subdominio.

Asegúrate de que los registros apunten a la dirección IP asociada con la regla o las reglas de reenvío del balanceador de cargas.

Si usas Cloud DNS y Google Domains, configura los dominios y actualiza los servidores de nombres.

Si tienes varios dominios en un certificado administrado por Google, agrega o actualiza registros DNS para todos los dominios y subdominios. Todos deben apuntar a la dirección IP del balanceador de cargas.

Después de esperar a que se complete la propagación del DNS, puedes ejecutar el comando dig para verificar la configuración. Por ejemplo, supongamos que el dominio es www.example.com. Ejecuta el siguiente comando dig:

dig www.example.com
; <<>> DiG 9.10.6 <<>> www.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:
;; flags: ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL:

;; PSEUDOSECTION:
; EDNS: version: 0, flags:; udp:
;; SECTION:
;www.example.com.

;; SECTION:
www.example.com.   www.example.com.edgekey.net.
www.example.com.edgekey.net.   www.example.com.edgekey.net.globalredir.akadns.net.
www.example.com.edgekey.net.globalredir.akadns.net.   e6858.dsce9.akamaiedge.net.
e6858.dsce9.akamaiedge.net.   203.0.113.5

;; time:
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 16:54:44
;;  rcvd: 31748 qr rd 1 OPT 512 QUESTION IN A ANSWER 1742 IN CNAME 21330 IN CNAME 3356 IN CNAME 212 IN A Query 43 msec Wed Jun 03 PDT 2020 MSG SIZE 193>

En este ejemplo, 203.0.113.5 es la dirección IP del balanceador de cargas.

Además, vuelve a ejecutar el siguiente comando:

gcloud compute ssl-certificates describe CERTIFICATE_NAME \
    --format="get(managed.domainStatus)"

Si el estado del dominio es FAILED_NOT_VISIBLE, consulta la sección de estado del certificado SSL administrado por Google en la página Solución de problemas.

Paso 5: Prueba con OpenSSL

Una vez que los estados del certificado y del dominio estén activos, pueden pasar hasta 30 minutos hasta que el balanceador de cargas comience a usar el certificado SSL administrado por Google.

Para probar, ejecuta el siguiente comando de OpenSSL y reemplaza DOMAIN por el nombre del DNS y IP_ADDRESS por la dirección IP del balanceador de cargas.

echo | openssl s_client -showcerts -servername DOMAIN -connect IP_ADDRESS:443 -verify 99 -verify_return_error

Este comando da como resultado los certificados que el balanceador de cargas presenta al cliente. Junto con otra información detallada, el resultado debe incluir la cadena de certificados y Verify return code: 0 (ok).

Renovación del certificado SSL administrado por Google

Google Cloud aprovisiona certificados administrados con una validez de 90 días. Alrededor de un mes antes del vencimiento, el proceso para renovar el certificado comienza de forma automática. Para esto, se elige una autoridad certificadora (CA) que esté en el registro DNS de la autorización de autoridad certificadora de tu dominio (CAA) y en la lista de CA.

La CA que se usa en la renovación puede ser no ser la misma que se usó para emitir una versión anterior del certificado administrado por Google. Puedes controlar la CA que usa Google Cloud para la renovación si te aseguras de que el registro DNS de la autorización de autoridad certificadora (CAA) del dominio especifique una sola CA de la lista de CA que usan los certificados administrados por Google.

Si alguno de los dominios o subdominios de un certificado administrado no dirige a la dirección IP del balanceador de cargas, el proceso de renovación falla. Para evitar que falle la renovación, asegúrate de que todos los dominios y los subdominios apunten a la dirección IP del balanceador de cargas.

Procedimientos opcionales

Especifica las CA que pueden emitir tu certificado administrado por Google

En tu software del servidor DNS, especifica las CA que deseas permitir que emitan el certificado administrado por Google. Para ello, crea o modifica un registro de CAA a fin de incluir pki.goog, letsencrypt.org o ambos. Si no tienes un registro de CAA, el comportamiento predeterminado es permitir pki.goog y letsencrypt.org.

DOMAIN. CAA 0 issue "pki.goog"
DOMAIN. CAA 0 issue "letsencrypt.org"

La compatibilidad con los certificados de letsencrypt.org se proporciona en función del mejor esfuerzo. Para obtener la mejor confiabilidad, permite pki.goog y letsencrypt.org. Si especificas solo una de las CA, esa será la única que se usará para crear y renovar el certificado: No se recomienda optar por ese método.

Cuando creas un certificado por primera vez, Google Cloud selecciona pki.goog o letsencrypt.org, y lo usa para emitir el certificado. Cuando Google renueva el certificado, la otra CA puede emitirlo, según las CA que hayas especificado en el registro de CAA (si creaste uno). Es posible que el certificado se renueve con una CA diferente en cualquiera de los siguientes casos:

  • No tienes un registro DNS de CAA para el dominio.
  • Incluiste ambas CA en el registro DNS de CAA.

Para obtener más información, consulta el RFC, Registro DNS de CAA.

letsencrypt.org emite nombres de dominio internacionalizados (IDN). pki.goog actualmente no es compatible con los IDN.

Si usas Cloud DNS, obtén información sobre cómo agregar un registro y asegúrate de establecer la marca --type en CAA.

Reemplaza un certificado SSL existente

Para reemplazar un certificado SSL existente, sigue estos pasos:

  1. Inicia el proceso de creación del certificado SSL administrado por Google de reemplazo. Este certificado no se vuelve ACTIVO en este momento.

  2. Actualiza el proxy de destino para que la lista de certificados de referencia incluya el certificado SSL de reemplazo junto con los certificados SSL actuales. Los pasos para actualizar el proxy de destino varían, como se indica en los siguientes vínculos:

  3. Espera a que se complete el aprovisionamiento del certificado SSL. Este proceso puede llevar hasta 60 minutos. Cuando se completa el aprovisionamiento, el estado del certificado se convierte en ACTIVE.

  4. Espera 30 minutos más a fin de asegurarte de que el certificado de reemplazo esté disponible para todos los Google Front Ends (GFE).

  5. Actualiza el proxy de destino para quitar el certificado SSL que deseas reemplazar de la lista de certificados de referencia. Los pasos para actualizar el proxy de destino varían, como se indica en los siguientes vínculos:

  6. Espera 10 minutos y confirma que el balanceador de cargas use el certificado SSL de reemplazo en lugar del anterior.

  7. Vuelve a actualizar el proxy de destino y quita el recurso del certificado SSL anterior. Puedes borrar el recurso del certificado SSL si ningún proxy de destino hace referencia a él.

Si no borras el certificado SSL anterior, permanecerá activo hasta que venza.

Cambia de certificados SSL autoadministrados a certificados SSL administrados por Google

Cuando haces que un balanceador de cargas deje de usar certificados SSL autoadministrados y comience a usar certificados SSL administrados por Google, debes realizar los siguientes pasos en esta secuencia:

  1. Crea un nuevo certificado administrado por Google.
  2. Asocia un nuevo certificado administrado por Google con el proxy de destino correcto mientras se mantiene la asociación del proxy de destino con el certificado autoadministrado existente.
  3. Espera hasta que el estado del certificado administrado por Google sea ACTIVE.
  4. Espera 30 minutos para permitir que el nuevo certificado se propague a los Google Front Ends (GFE) a cargo de la entrega.
  5. Vuelve a actualizar el proxy de destino y quita el recurso del certificado autoadministrado. Puedes borrar el recurso del certificado SSL autoadministrado si ningún proxy de destino hace referencia a él.

Borra certificados SSL

Antes de borrar un certificado SSL, asegúrate de que ningún proxy de destino SSL o HTTPS haga referencia a este certificado. Puedes hacerlo de dos maneras:

Para borrar uno o más certificados SSL, sigue estos pasos:

Console

Puedes borrar certificados SSL globales en la pestaña Certificados de la página Balanceo de cargas.

  1. Ve a la página Certificados en Google Cloud Console.
    Ir a la página Certificados
  2. Selecciona el certificado SSL que deseas borrar.
  3. Haz clic en Borrar.
  4. Para confirmar la acción, vuelve a hacer clic en Borrar.

gcloud

A fin de borrar un certificado SSL global (para balanceadores de cargas de HTTP(S) o balanceadores de cargas de proxy SSL), usa el comando gcloud compute ssl-certificates delete con el comando --global:

gcloud compute ssl-certificates delete CERTIFICATE_NAME \
    --global

Reemplaza los marcadores de posición por valores válidos:

  • CERTIFICATE_NAME: El nombre del certificado SSL

¿Qué sigue?