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 que Google Cloud obtiene y administra para tus dominios, y los renueva de manera automática. Estos son certificados de validación de dominio (DV) que admiten varios nombres de host en cada certificado.

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.

Antes de comenzar

Permisos

A fin de seguir esta guía, debes tener permiso para crear y modificar certificados SSL en el proyecto. Tienes este permiso si dispones de una de las siguientes funciones o permisos:

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 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. 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

Usa el comando gcloud compute ssl-certificates create a fin de crear un certificado SSL global administrado por Google para un balanceador de cargas de HTTP(S) externo o un balanceador de cargas de proxy SSL:

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 tus certificados SSL 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

Puedes usar comandos gcloud compute para determinar el estado del certificado administrado por Google. Después de ejecutar el comando adecuado, comprueba lo siguiente:

  • El estado administrado
  • El estado del dominio

Usa el comando gcloud compute ssl-certificates list con la marca --global para ver los certificados SSL administrados por Google.

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. Los estados cambian a ACTIVE una vez que completas todos los pasos de esta página.

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.

Una vez que el certificado se haya creado y esté en el estado PROVISIONING, puedes usarlo durante la creación del 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:

  • TARGET_PROXY_NAME: El nombre del proxy de destino del balanceador de cargas
  • SSL_CERTIFICATE_LIST: Una lista de certificados SSL delimitada por comas

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 con el proxy de destino del balanceador de cargas mediante la ejecución de los siguientes comandos.

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 firmar el certificado. El aprovisionamiento de un certificado administrado por Google puede tomar hasta 60 minutos.

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

En el host DNS, el ISP o el sitio de tu registrador (dondequiera que se administren los registros DNS), agrega o actualiza los registros A (IPv4) y los registros AAAA (para IPv6) del DNS de los dominios y de cualquier subdominio, a fin de que 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 usas varios dominios para un solo certificado administrado por Google, debes agregar o actualizar los registros DNS de todos los dominios y de cualquier subdominio a fin de que todos apunten 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 comando dig:

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

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.example.com.           IN  A

;; ANSWER SECTION:
www.example.com.        1742    IN  CNAME   www.example.com.edgekey.net.
www.example.com.edgekey.net. 21330 IN   CNAME   www.example.com.edgekey.net.globalredir.akadns.net.
www.example.com.edgekey.net.globalredir.akadns.net. 3356 IN CNAME   e6858.dsce9.akamaiedge.net.
e6858.dsce9.akamaiedge.net. 212 IN  A   203.0.113.5

;; Query time: 43 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Jun 03 16:54:44 PDT 2020
;; MSG SIZE  rcvd: 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: Realiza pruebas 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 renueva de forma automática el certificado administrado por Google mediante cualquier autoridad certificada (CA) que esté en el registro DNS de la CAA del dominio y en la lista de CA que usa Google Cloud en el momento de la renovación.

La CA que se usa en la renovación puede ser no ser la misma que se usó para firmar 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 de certificación (CAA) del dominio especifique una sola CA de la lista de CA que usan los certificados administrados por Google.

Procedimientos opcionales

Especifica las CA que pueden firmar el certificado administrado por Google

En el software del servidor DNS, especifica las CA que pueden firmar el certificado administrado por Google. Puedes elegir pki.goog, letsencrypt.org o ambas opciones.

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 el certificado por primera vez, Google Cloud selecciona pki.goog o letsencrypt.org y la usa para firmar el certificado. Cuando Google renueva el certificado, es posible que lo firme la otra CA.

Para obtener más información, consulta el RFC, Registro DNS de autorización de autoridad certificada (CAA).

Los nombres de dominio internacionalizados (IDN) son emitidos por letsencrypt.org. Por el momento, no son compatibles con pki.goog.

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. Ten en cuenta que, en este momento, este certificado no se activará.

  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 de forma correcta el aprovisionamiento, el estado del certificado es 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. De manera opcional, borra el recurso del certificado SSL anterior.

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 certificado autoadministrado.

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 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

Próximos pasos