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.
Cuando Google renueva un certificado administrado con varios dominios, si alguno de los dominios o subdominios no apunta a la dirección IP del balanceador de cargas, el proceso de renovación falla. Después de aprovisionar el certificado administrado, asegúrate de que todos los dominios y subdominios aún apunten a la dirección IP del balanceador de cargas para evitar errores de renovación.
Antes de comenzar
- Asegúrate de estar familiarizado con la descripción general de los certificados SSL.
- Asegúrate de tener los nombres de dominio que deseas usar para el certificado SSL administrado por Google. Si usas Google Domains, consulta el Paso 1: Registra un nombre de dominio mediante Google Domains.
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:
- Eres un propietario o editor del proyecto.
- Tienes la función
compute.loadBalancerAdmin
O las funcionescompute.securityAdmin
ycompute.networkAdmin
en el proyecto. - Tienes una función personalizada para el proyecto que incluye los permisos
compute.sslCertificates.*
, además de los dos permisoscompute.targetHttpsProxies.*
ycompute.targetSslProxies.*
o solo uno de ellos, según el tipo de balanceador de cargas que uses.
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.
- Ve a la página Certificados en Google Cloud Console.
Ir a la página Certificados - Haz clic en Crear certificado SSL.
- Ingresa un nombre y una descripción opcional para el certificado.
- Selecciona Crear certificado administrado por Google.
- Agrega los dominios.
- 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 globalDESCRIPTION
: Una descripción para el certificado SSL globalDOMAIN_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.
- Ve a la página Certificados en Google Cloud Console.
Ir a la página Certificados - Filtra la lista de certificados SSL (opcional).
- Verifica la columna Estado.
- 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:
- Configura un balanceador de cargas de HTTPS externo simple
- Configura el balanceo de cargas de proxy SSL
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.
- Ve a la página Balanceo de cargas en Google Cloud Console.
Ir a la página Balanceo de cargas - Haz clic en el nombre del balanceador de cargas.
- Haz clic en Editar .
- Haz clic en Configuración de frontend.
- Haz clic en el frontend correcto (debe ser HTTPS, HTTP/2 o SSL).
- Haz clic en Certificados adicionales y selecciona el certificado administrado por Google en la lista desplegable.
- 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 cargasSSL_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 emitir 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 (donde sea que se administren los registros DNS), agrega o actualiza los registros A (IPv4) y los registros AAAA (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 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 ello, se elige una autoridad certificada (CA) que está en el registro DNS de CAA del dominio y en la lista de las 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 de certificación (CAA) del dominio especifique una sola CA de la lista de CA que usan los certificados administrados por Google.
Cuando Google renueva un certificado administrado con varios dominios, si alguno de los dominios o subdominios no apunta a la dirección IP del balanceador de cargas, el proceso de renovación falla. Después de aprovisionar el certificado administrado, asegúrate de que todos los dominios y subdominios aún apunten a la dirección IP del balanceador de cargas para evitar errores de renovación.
Procedimientos opcionales
Especifica las CA que pueden emitir el 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 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:
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á.
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:
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
.Espera 30 minutos más a fin de asegurarte de que el certificado de reemplazo esté disponible para todos los Google Front Ends (GFE).
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:
Espera 10 minutos y confirma que el balanceador de cargas use el certificado SSL de reemplazo en lugar del anterior.
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:
- Crea un nuevo certificado administrado por Google.
- 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.
- Espera hasta que el estado del certificado administrado por Google sea
ACTIVE
. - Espera 30 minutos para permitir que el nuevo certificado se propague a los Google Front Ends (GFE) a cargo de la entrega.
- 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:
Borra los proxies de destino que hacen referencia a este certificado.
Actualiza los proxies de destino que hacen referencia a este certificado a fin de excluirlo. Los pasos varían, como se indica en los siguientes vínculos:
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.
- Ve a la página Certificados en Google Cloud Console.
Ir a la página Certificados - Selecciona el certificado SSL que deseas borrar.
- Haz clic en Borrar.
- 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?
- Para solucionar problemas de certificados SSL, consulta Soluciona problemas con los certificados SSL.