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:
- Revise las Consideraciones antes de utilizar correlaciones de dominio personalizadas en Code Engine.
- Obtener el dominio personalizado de un registrador de dominio (fuera de Code Engine).
- Configure una correlación de dominio personalizada en Code Engine para la aplicación (desde la consola o CLI de Code Engine).
- 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
- Obtener un dominio personalizado de un registrador de dominio y su certificado TLS firmado y clave privada.
- Crear un proyecto.
- Cree una app.
-
En la página Code Engine Projects, vaya a su proyecto.
-
En la página Visión general, pulse Correlaciones de dominio.
-
En la página Correlaciones de dominio, pulse Crear para crear la correlación.
-
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,
- Pulse Crear.
- 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.
- 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,
- Pulse Seleccionar.
- Seleccione el secreto existente en la lista que desea utilizar.
-
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ónmyapputiliza la imagen de ejemploicr.io/codeengine/helloworld. Para obtener más información sobre el código que se utiliza para este ejemplo, consultehelloworld. - 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.
- Especifique el nombre de dominio completo para el nombre de dominio personalizado; por ejemplo,
-
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
- Obtenga el nombre de dominio registrado.
- Obtenga el certificado TLS firmado y la clave privada para el dominio personalizado.
- Configure su entorno de CLI de Code Engine.
- Crear un proyecto.
- Cree una app.
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.
-
Cree un secreto TLS con el certificado TLS firmado y la clave privada. En este ejemplo, el archivo
mycert.txtcontiene 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 archivomyprivatekey.txtcontiene 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.txtSalida de ejemplo
Creating tls secret 'mytlssecret'... OK -
Cree la correlación de dominios personalizada entre la aplicación Code Engine
myappy 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 mytlssecretSalida 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.
| 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.