Configuración de correlaciones de dominio personalizadas para la app

Las asignaciones de dominio proporcionan la ruta URL a sus aplicaciones Code Engine dentro de un proyecto. Con Code Engine, estas asignaciones se crean automáticamente, por defecto, cada vez que se despliega una aplicación. Sin embargo, puede asignar su propio dominio personalizado a una aplicación de Code Engine para dirigir las solicitudes desde su URL personalizado a su aplicación desde la consola Code Engine o CLI.

Si desea dirigirse a la aplicación con un dominio de su propiedad, puede utilizar una correlación de dominios personalizada. Cuando se establece una correlación de dominio personalizado en Code Engine, se define una correlación de 1-to-1 entre el nombre de dominio completo (FQDN) y una aplicación Code Engine en el proyecto.

Una correlación de dominio personalizada sólo debe apuntar a una aplicación. Sin embargo, puede configurar varias correlaciones de dominio para una única aplicación.

Puede crear como máximo 80 correlaciones de dominio personalizadas por proyecto. Consulte Cuotas de proyecto.

Al crear una correlación de dominio personalizado en Code Engine, el nombre de dominio que utilice en la correlación debe ser exclusivo en la región.

Para crear y configurar correlaciones de dominio personalizadas, siga estos pasos:

  1. Revise las Consideraciones antes de utilizar correlaciones de dominio personalizadas en Code Engine.
  2. Obtener el dominio personalizado de un registrador de dominio (fuera de Code Engine).
  3. Configure una correlación de dominio personalizada en Code Engine para la aplicación (desde la consola o CLI de Code Engine).
  4. Complete la configuración de dominio personalizado con el registrador de dominio (fuera de Code Engine).

Suponga que desea crear una correlación de dominio personalizada para www.example.com y shop.example.com. En este caso, debe crear una correlación de dominio personalizada para cada dominio o subdominio exclusivo. Sin embargo, puede reutilizar el mismo secreto TLS para varias correlaciones de dominio personalizadas si los certificados del secreto TLS incluyen el dominio especificado en la correlación de dominio personalizada. Esto significa que puede correlacionar un secreto TLS con varios dominios, como www.example.com y shop.example.com, o con un dominio comodín como *.example.com.

Configuración de correlaciones de dominio personalizadas desde la consola

Puede crear una correlación de dominio personalizado con la aplicación Code Engine con el nombre de dominio registrado con la consola de Code Engine.

En este escenario, vamos a crear una correlación de dominio personalizada con una aplicación con un secreto TLS. Por ejemplo, cree una correlación de dominio personalizada para correlacionar el dominio www.example.com con la aplicación myapp.

Antes de empezar

  1. En la página Code Engine Projects, vaya a su proyecto.

  2. En la página Visión general, pulse Correlaciones de dominio.

  3. En la página Correlaciones de dominio, pulse Crear para crear la correlación.

  4. En la página Crear una correlación de dominio, especifique el secreto TLS que se utilizará con esta correlación de dominio. Code Engine valida si el certificado está firmado por una CA de confianza y si el certificado coincide con el nombre de dominio personalizado y la clave privada proporcionados.

    Para crear un nuevo secreto TLS,

    1. Pulse Crear.
    2. Añada el certificado TLS, incluidos todos los certificados intermedios, que están asociados con el dominio. Si el certificado se le proporciona como archivos separados, concatene el contenido de los archivos. Puede proporcionar esta información en un archivo.
    3. Añada la clave privada correspondiente a su certificado. Puede proporcionar esta información en un archivo.

    Formato de ejemplo para una cadena de certificados

    -----BEGIN CERTIFICATE-----
    ...certificate...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...intermediate-certificate...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...intermediate-certificate...
    -----END CERTIFICATE-----
    

    O, para utilizar un secreto TLS existente,

    1. Pulse Seleccionar.
    2. Seleccione el secreto existente en la lista que desea utilizar.
  5. Especifique el nombre de dominio y el componente de destino.

    • Especifique el nombre de dominio completo para el nombre de dominio personalizado; por ejemplo, www.example.com.
    • Seleccione una aplicación de destino existente; por ejemplo, myapp. Para este ejemplo, la aplicación myapp utiliza la imagen de ejemplo icr.io/codeengine/helloworld. Para obtener más información sobre el código que se utiliza para este ejemplo, consulte helloworld.
    • Observe el campo Destino CNAME. Este valor es la entrada CNAME que es necesaria cuando completa la configuración de dominio personalizado con el registrador de dominio para que el tráfico que tiene como destino el dominio personalizado se direccione a la aplicación especificada.
  6. Pulse Crear para crear la correlación de dominios personalizada.

Ahora tiene una correlación de dominio que se crea en Code Engine. Sin embargo, las solicitudes que se envían a la aplicación no se direccionan (todavía) al dominio personalizado. A continuación, debe completar la configuración de dominio personalizado con el registrador de dominio (fuera de Code Engine).

Configuración de correlaciones de dominio personalizadas con la CLI

Para crear una correlación de dominios personalizada con la CLI, utilice el mandato domainmapping create. Este mandato requiere un nombre de dominio completo (FQDN), como www.example.com, una aplicación de destino y un secreto TLS. Para obtener una lista completa de opciones, consulte el comando ibmcloud ce domainmapping create comando

Antes de empezar

Cuando el nombre de dominio está registrado, tiene un certificado TLS firmado y su clave privada coincidente para este dominio, y tiene una aplicación Code Engine existente, está preparado para añadir una correlación de dominio personalizada a esta aplicación. Puede utilizar el mandato domainmapping create en la CLI para crear una correlación de dominio personalizada con la aplicación Code Engine.

  1. Cree un secreto TLS con el certificado TLS firmado y la clave privada. En este ejemplo, el archivo mycert.txt contiene el certificado TLS, incluidos todos los certificados intermedios, que están asociados con el dominio. Si el certificado se le proporciona como archivos separados, concatene el contenido de los archivos. El archivo myprivatekey.txt contiene la clave privada coincidente que corresponde a la cadena de certificados.

    ibmcloud ce secret create --name mytlssecret --format tls --cert-chain-file  mycertchain.txt --private-key-file myprivatekey.txt
    

    Salida de ejemplo

    Creating tls secret 'mytlssecret'...
    OK
    
  2. Cree la correlación de dominios personalizada entre la aplicación Code Engine myapp y el dominio personalizado, www.example.com. Utilice el secreto TLS que ha creado en el paso anterior.

    ibmcloud ce domainmapping create --domain-name www.example.com --target myapp --tls-secret mytlssecret
    

    Salida de ejemplo

    OK
    Domain mapping successfully created.
    

La siguiente tabla resume las opciones que se utilizan con el domainmapping create comando en este ejemplo. Para obtener más información sobre el comando y sus opciones, consulte la sección ibmcloud ce domainmapping create comando.

Descripción del mandato
Opción Descripción
--domain-name El nombre de la asignación de dominio personalizada. Especifique el nombre del dominio personalizado, como por ejemplo www.example.com. Este valor es obligatorio.
--target El nombre de la aplicación Code Engine de destino. Este valor es obligatorio.
--tls-secret Secreto TLS de la correlación de dominios. Este valor es obligatorio.

Ahora tiene una correlación de dominio personalizada que se crea en Code Engine. Sin embargo, las solicitudes que se envían a la aplicación no se direccionan (todavía) al dominio personalizado. A continuación, complete la configuración de dominio personalizado con el registrador de dominio (fuera de Code Engine).

Completar la configuración de dominio personalizado con el registrador de dominio

Después de crear la correlación de dominio personalizado Code Engine, se debe añadir un registro CNAME que coincida con el nombre de dominio completo a los valores DNS del dominio personalizado. Puede encontrar los valores de DNS en los valores de configuración del registrador de dominio correspondiente. Realice este paso para que el tráfico que tiene como destino el dominio personalizado se direccione a la función Code Engine tal como se define en la correlación de dominio personalizado Code Engine.

Prueba del dominio personalizado

Después de completar la configuración de dominio personalizado con el registrador de dominio y de que se publiquen las actualizaciones de registro CNAME, puede probar la aplicación con la correlación de dominio personalizado.

Con un navegador, llame a la aplicación apuntando al dominio personalizado utilizando curl.

curl -v -X GET https://www.example.com

Salida de ejemplo

Hello World from:
     ___  __  ____  ____
    / __)/  \(    \(  __)
   ( (__(  O )) D ( ) _)
    \___)\__/(____/(____)
 ____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
 ) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-6db6d89dc7-k6qc7
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1

La salida de la llamada al dominio personalizado se correlaciona con la aplicación myapp, que utiliza la imagen de ejemplo icr.io/codeengine/helloworld.

Para obtener más información sobre las correlaciones de dominio en Code Engine, consulte Trabajar con correlaciones de dominio personalizadas.