Asigna dominios personalizados

Puedes usar un dominio personalizado en lugar de la dirección predeterminada que App Engine proporciona para tu app.

Para usar un dominio personalizado, mapéalo a tu app y, luego, actualiza tus registros DNS. Puedes mapear un dominio simple, como example.com, o un subdominio, como subdomain.example.com. También puedes usar comodines para mapear subdominios.

De forma predeterminada, cuando mapeas un dominio a tu app, App Engine emite un certificado administrado de SSL para las conexiones HTTPS. Para obtener más información sobre cómo usar SSL con el dominio personalizado, incluso con tus propios certificados SSL, consulta Protege los dominios personalizados con SSL.

El uso de dominios personalizados puede agregar una latencia notable a las respuestas que App Engine envía a los usuarios de la app en algunas regiones. Las regiones son las siguientes:

  • us-west2
  • us-east4
  • northamerica-northeast1
  • southamerica-east1
  • europe-west2
  • europe-west3
  • asia-south1
  • asia-northeast1
  • australia-southeast1

Los dominios personalizados de App Engine usan un grupo de direcciones IP compartidas para todas las aplicaciones. Si deseas usar una dirección IP que solo se asigne a tu dominio, debes configurar un balanceador de cargas con App Engine. Esto puede mitigar un problema de frontend de dominio en el que una solicitud a la aplicación A en el certificado SNI se puede enrutar a la aplicación B en el encabezado del host HTTP.

Antes de comenzar

  • Si no tienes un dominio, compra uno. Puedes usar cualquier registrador de nombres de dominio.

  • Para agregar o editar una asignación de dominio personalizado, tu cuenta debe tener el rol de administrador de App Engine (roles/appengine.appAdmin) o un rol personalizado que contenga el permiso appengine.applications.get.

  • Si usas Cloud Load Balancing y serverless network endpoint group (NEGS) sin servidores a fin de enrutar el tráfico a tu app de App Engine, recomendamos asignar el dominio personalizado al balanceador de cargas, en lugar de asignarlo directamente a tu app, y usar certificados SSL gestionado por Google y creados para el balanceador de cargas. Esto quita la necesidad de administrar certificados SSL independientes para cada app sin servidores. Además, con Cloud Load Balancing, puedes establecer políticas de SSL que controlen las características de SSL que tu balanceador de cargas negocia con los clientes.

    Si deseas obtener más información, consulta las siguientes páginas:

    Ten en cuenta la siguiente limitación:

    • Te recomendamos usar controles de entrada para que la app solo reciba solicitudes enviadas desde el balanceador de cargas (y la VPC, si la usas). De lo contrario, los usuarios pueden usar la URL de App Engine de tu app para omitir el balanceador de cargas, las políticas de seguridad de Google Cloud Armor, los certificados SSL y las claves privadas que se pasan a través del balanceador de cargas.

Asigna un dominio personalizado a tu app

  1. En la consola de Google Cloud, ve a la pestaña Configuración de la aplicación de la página Configuración de App Engine.

    Ir a la configuración de la aplicación

    Si no necesitas modificar el referente predeterminado de la API de Cuentas de Google, continúa con el siguiente paso.

    Si necesitas habilitar la autenticación de Google Workspace para tu dominio personalizado, haz clic en Editar a fin de modificar el referente de la API de Cuentas de Google. En el menú desplegable Autenticación de Google, selecciona Dominio de Google Workspace y, luego, agrega tu dominio, como example.com en el campo vacío.

  2. En la consola de Google Cloud, ve a la pestaña Dominios personalizados de la página Configuración de App Engine.

    Ir a Dominios personalizados

  3. Haz clic en Agregar un dominio personalizado.

  4. Si tu dominio ya está verificado, aparecerá en la sección Selecciona el dominio que deseas usar. Selecciona el dominio en el menú desplegable y haz clic en Continuar.

    Si aún no verificaste tu dominio, haz lo siguiente:

    1. Selecciona Verificar un nuevo dominio en el menú desplegable.
    2. Ingresa tu nombre de dominio simple (como “example.com”) y haz clic en Verificar.

      Incluso si solo deseas asignar un subdominio, como “www.subdominio.example.com”, ingresa el nombre de dominio simple para verificar la propiedad.

      Ten en cuenta que los nombres de dominio deben tener menos de 64 bytes.

    3. Ingresa la información en la ventana de Search Console que aparece. Si necesitas ayuda para usar Search Console, consulta la ayuda de Search Console.

    4. Después de completar los pasos en Search Console, regresa a la página Agregar un nuevo dominio personalizado en la consola de Google Cloud.

  5. En la sección Dirige tu dominio a [project-ID], especifica el dominio y los subdominios que deseas asignar.

    Recomendamos mapear el dominio simple y el subdominio www. Puedes agregar más subdominios si los necesitas.

    Después de agregar todos los mapeos que desees, haz clic en Guardar asignaciones.

  6. Haz clic en Continuar para ver los registros DNS de tu dominio.

    Puedes recuperar estos registros en cualquier momento en la pestaña Dominios personalizados de la página Configuración de App Engine.

  7. Accede al sitio web del registrador de dominios y actualiza tus registros DNS con los registros que se muestran en el paso anterior.

Actualiza los registros DNS en el registrador de dominios

Después de mapear tu servicio a un dominio personalizado en App Engine, debes actualizar tus registros DNS en el registrador de dominios. Para tu comodidad, App Engine genera y muestra los registros DNS que debes ingresar.

  1. Puedes recuperar la información del registro DNS para los mapeos de dominio si sigues estos pasos:

    En la consola de Google Cloud, ve a la pestaña Dominios personalizados de la página Configuración de App Engine. En la página, se enumeran los registros DNS de todos los dominios que asignaste a tu app.

  2. Accede a tu cuenta en el registrador de dominios y abre la página Configuración de DNS.

  3. Ubica la sección de registros de host de la página de configuración de tu dominio y agrega cada uno de los registros DNS que recuperaste cuando mapeaste el dominio a tu app.

    Ingresa la siguiente información en los campos de registro:

    • Tipo de registro: Ingresa el tipo de registro que se muestra en el registro DNS que Google creó para ti (A, AAAA o CNAME).
    • Nombre del registro:

      • En los registros AAAAA, ingresa @.
      • En los registros CNAME, ingresa un nombre de dominio de tercer nivel. Por ejemplo, ingresa www para mapear el subdominio www.example.com.
    • Ten en cuenta que, si usas Cloud DNS, no es necesario agregar un símbolo @ cuando creas un registro A para tu dominio personalizado superior (example.com). Sin embargo, es posible que debas especificar un símbolo @ para otros proveedores de DNS, como GoDaddy.

    • TTL: Especifica un TTL según tus necesidades.

    • Datos: ingresa los datos de registro (rrdata) que se muestran en el registro DNS que Google creó para ti.

      • En los registros AAAAA, los datos del registro son una dirección IP.
      • En los registros CNAME, los datos del registro son un nombre de dominio.
  4. Guarda los cambios en la página de configuración de DNS de la cuenta del dominio. En la mayoría de los casos, la aplicación de estos cambios toma solo unos minutos, pero en algunos casos puede tomar varias horas, en función del registrador y el tiempo de actividad (TTL) de cualquier registro DNS anterior del dominio. Puedes usar una herramienta de dig, como esta versión de dig en línea, para confirmar que los registros DNS se hayan actualizado de forma correcta.

  5. Navega al servicio con la URL nueva para probar si funciona, por ejemplo, https://www.example.com. Ten en cuenta que la emisión del certificado SSL automático puede tomar varios minutos.

Delega la propiedad a otros usuarios de Google Cloud o cuentas de servicio

Si necesitas delegar la propiedad del dominio a otros usuarios o cuentas de servicio, puedes agregar permisos a través de la página de Search Console. Para ver una lista de las cuentas de servicio, abre la página Cuentas de servicio en la consola de Google Cloud.

Para agregar permisos a través de Search Console, haz lo siguiente:

  1. Abre la verificación de Search Console.

  2. En Propiedades, haz clic en el dominio al que deseas agregarle un usuario o una cuenta de servicio.

  3. Ve a Configuración en el panel lateral.

  4. En Configuración general, haz clic en Usuarios y permisos para encontrar los propietarios de tu dominio.

  5. Haz clic en Agregar usuario y, luego, ingresa el ID de correo electrónico del usuario. Selecciona el permiso requerido para otorgarlo al usuario. Para obtener detalles sobre los permisos, consulta Cómo administrar propietarios, usuarios y permisos.

  6. Haz clic en Agregar para delegar la propiedad al usuario.

Utiliza subdominios

Si configuras un mapeo de subdominios de comodines para el dominio personalizado, tu aplicación entregará solicitudes a cualquier subdominio coincidente.

  • Si el usuario explora un dominio que coincide con el nombre de la versión de una aplicación o el nombre de un servicio, la aplicación entregará esa versión.
  • Si el usuario explora un dominio que coincide con el nombre de un servicio, la aplicación entregará ese servicio.
  • Hay un límite de 20 certificados SSL administrados por semana para cada dominio base. Si alcanzas este límite, App Engine seguirá tratando de emitir los certificados administrados hasta que se hayan entregado todas las solicitudes.

Mapeos de comodines

Puedes utilizar comodines para mapear subdominios en cualquier nivel, a partir de los subdominios de tercer nivel. Por ejemplo, si el dominio es example.com e ingresas texto en el campo de dirección web, sucede lo siguiente:

  • Cuando se ingresa *.example.com, se mapean todos los subdominios de example.com a tu app.
  • Cuando se ingresa *.private.example.com, se mapean todos los subdominios de private.example.com a tu app.
  • Cuando se ingresa *.nichol.sharks.nhl.example.com, se mapean todos los subdominios de nichol.sharks.nhl.example.com a tu app.
  • Cuando se ingresa *.excogitate.system.example.com, se mapean todos los subdominios de excogitate.system.example.com a tu app.

Puedes usar mapeos de comodines con servicios en App Engine mediante el archivo dispatch.yaml para definir el enrutamiento de solicitudes a servicios específicos.

Si usas Google Workspace con otros subdominios en tu dominio, como sites y mail, esos mapeos tienen mayor prioridad y aparecen primero, antes de que se realice cualquier mapeo de comodines. Además, si tienes otras apps de App Engine mapeadas a otros subdominios, esos mapeos también tienen mayor prioridad que cualquier mapeo de comodines.

Es posible que algunos proveedores de DNS no funcionen con los mapeos de subdominios de comodines. En concreto, un proveedor de DNS debe permitir comodines en las entradas del host CNAME.

Las reglas de enrutamiento de comodines se aplican a las URL que contienen componentes para los servicios, las versiones y las instancias, de acuerdo con las reglas de enrutamiento de servicios de App Engine.

Borra dominios personalizados de tu app

Para borrar una asignación de dominio personalizado de tu app, tu cuenta debe tener el rol de administrador de App Engine (roles/appengine.appAdmin) o un rol personalizado que contenga el permiso appengine.applications.update.

En la consola de Google Cloud, haz lo siguiente:

  1. Ve a la pestaña Dominios personalizados de la página Configuración de App Engine.

    Ir a Dominios personalizados

  2. Selecciona el nombre del dominio personalizado y haz clic en Borrar.

De manera alternativa, puedes usar comandos de gcloud o la API de Admin para borrar dominios personalizados.

Soluciona problemas

Si tu app muestra errores de autenticación después de configurar tu dominio personalizado con la autenticación de dominio de Google Workspace, quita la asignación de tu dominio personalizado y vuelve a realizar los pasos para asignar un dominio personalizado a tu aplicación. Asegúrate de configurar la autenticación de dominio de Google Workspace antes de configurar la asignación de dominio personalizado en App Engine.

¿Qué sigue?