Configurazione delle associazioni di dominio personalizzate per l'app

I mapping di dominio forniscono il percorso URL alle applicazioni Code Engine all'interno di un progetto. Con Code Engine, queste mappature vengono create automaticamente, per impostazione predefinita, ogni volta che si distribuisce un'applicazione. Tuttavia, è possibile mappare il proprio dominio personalizzato a un'applicazione Code Engine per instradare le richieste dal dominio personalizzato URL alla propria applicazione dalla console o dalla CLI di Code Engine.

Se si desidera indicare come destinazione l'applicazione con un dominio di cui si è proprietari, è possibile utilizzare un'associazione dominio personalizzata. Quando imposti un'associazione dominio personalizzata in Code Engine, definisci un'associazione 1-to-1 tra il nome dominio completo (FQDN) e un'applicazione Code Engine nel tuo progetto.

Un'associazione dominio personalizzata deve puntare a una sola applicazione. Tuttavia, è possibile configurare più associazioni dominio a una singola applicazione.

È possibile creare al massimo 80 associazioni di dominio personalizzate per progetto. Vedere Quote di progetti.

Quando crei un'associazione dominio personalizzata in Code Engine, il nome dominio che utilizzi nell'associazione deve essere univoco nella regione.

Per creare e configurare associazioni di dominio personalizzate, completare la seguente procedura:

  1. Esamina le considerazioni prima di utilizzare le associazioni del dominio personalizzate in Code Engine.
  2. Ottieni il dominio personalizzato da un registrar di dominio (esterno a Code Engine).
  3. Configurare un'associazione dominio personalizzata in Code Engine per applicazione (dalla console o dalla CLI Code Engine).
  4. Completa la configurazione del dominio personalizzato con il tuo registrar del dominio (esterno a Code Engine).

Si supponga di voler creare un'associazione dominio personalizzata per www.example.com e shop.example.com. In questo caso, è necessario creare un'associazione dominio personalizzata per ciascun dominio o sottodominio univoco. Tuttavia, è possibile riutilizzare lo stesso segreto TLS per più associazioni di dominio personalizzate se i certificati del segreto TLS includono il dominio specificato nell'associazione di dominio personalizzato. Ciò significa che puoi associare un segreto TLS a più domini, come www.example.com e shop.example.com, o a un dominio jolly come *.example.com.

Configurazione delle associazioni di dominio personalizzate dalla console

Puoi creare un'associazione dominio personalizzata con la tua applicazione Code Engine al nome dominio registrato con la console Code Engine.

In questo scenario, creiamo un'associazione di dominio personalizzata a un'applicazione con un segreto TLS. Ad esempio, creare un'associazione dominio personalizzata per associare il dominio www.example.com all'applicazione myapp.

Prima di iniziare

  1. Dalla pagina ProgettiCode Engine, vai al tuo progetto.

  2. Dalla pagina Panoramica, fare clic su Associazioni dominio.

  3. Dalla pagina Associazioni dominio, fare clic su Crea per creare la propria associazione.

  4. Dalla pagina Crea un'associazione dominio, specificare il segreto TLS da utilizzare con questa associazione dominio. Code Engine convalida se il certificato è firmato da una CA attendibile e se il certificato corrisponde al nome del dominio personalizzato e alla chiave privata forniti.

    Per creare un nuovo segreto TLS,

    1. Fai clic su Crea.
    2. Aggiungi il certificato TLS, inclusi tutti i certificati intermedi, associati al tuo dominio. Se il certificato viene fornito all'utente come file separati, concatenare il contenuto dei file. È possibile fornire queste informazioni in un file.
    3. Aggiungere la chiave privata corrispondente al certificato. È possibile fornire queste informazioni in un file.

    Formato di esempio per una catena di certificati

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

    Oppure, per utilizzare un segreto TLS esistente,

    1. Fai clic su Select.
    2. Selezionare il segreto esistente dall'elenco che si desidera utilizzare.
  5. Specificare il nome dominio e il componente di destinazione.

    • Specificare il nome dominio completo per il nome dominio personalizzato; ad esempio, www.example.com.
    • Selezionare un'applicazione di destinazione esistente, ad esempio myapp. Per questo esempio, l'applicazione myapp utilizza l'immagine di esempio icr.io/codeengine/helloworld. Per ulteriori informazioni sul codice utilizzato per questo esempio, consultare helloworld.
    • Nota il campo CNAME target. Questo valore è la voce CNAME richiesta quando completi la configurazione del dominio personalizzato con il tuo registrar del dominio in modo che il traffico che punta al tuo dominio personalizzato venga instradato all'applicazione specificata.
  6. Fare clic su Crea per creare l'associazione dominio personalizzata.

Ora hai un'associazione di dominio creata in Code Engine. Tuttavia, le richieste inviate alla tua applicazione non vengono (ancora) instradate al tuo dominio personalizzato. Successivamente, devi completare la configurazione del dominio personalizzato con il tuo registrar del dominio (all'esterno di Code Engine).

Configurazione delle associazioni di domini personalizzati con CLI

Per creare un'associazione dominio personalizzata con CLI, utilizzare il comando domainmapping create. Questo comando necessita di un nome dominio completo (FQDN), come www.example.com, un'applicazione di destinazione e un segreto TLS. Per un elenco completo delle opzioni, consultare il comando ibmcloud ce domainmapping create.

Prima di iniziare

Quando il tuo nome dominio è registrato, hai un certificato TLS firmato e la sua chiave privata corrispondente per questo dominio e hai un'applicazione Code Engine esistente, sei pronto per aggiungere un'associazione dominio personalizzata a questa applicazione. Puoi utilizzare il comando domainmapping create nella CLI per creare un'associazione dominio personalizzata con la tua applicazione Code Engine.

  1. Crea un segreto TLS con il certificato TLS firmato e la chiave privata. In questo esempio, il file mycert.txt contiene il certificato TLS, inclusi tutti i certificati intermedi, associati con il tuo dominio. Se il certificato viene fornito all'utente come file separati, concatenare il contenuto dei file. Il file myprivatekey.txt contiene la chiave privata corrispondente che corrisponde alla catena di certificati.

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

    Output di esempio

    Creating tls secret 'mytlssecret'...
    OK
    
  2. Crea l'associazione del dominio personalizzato tra l'applicazione Code Engine myapp e il dominio personalizzato, www.example.com. Utilizza il segreto TLS che hai creato nel passo precedente.

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

    Output di esempio

    OK
    Domain mapping successfully created.
    

La seguente tabella riepiloga le opzioni utilizzate con il comando domainmapping create in questo esempio. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comando ibmcloud ce domainmapping create.

Descrizione del comando
Opzione Descrizione
--domain-name Il nome della mappatura del dominio personalizzato. Specificare il nome del dominio personalizzato, ad esempio www.example.com. Questo valore è obbligatorio.
--target Il nome dell'applicazione Code Engine di destinazione. Questo valore è obbligatorio.
--tls-secret Il segreto TLS per l'associazione dominio. Questo valore è obbligatorio.

Ora hai un'associazione dominio personalizzata creata in Code Engine. Tuttavia, le richieste inviate alla tua applicazione non vengono (ancora) instradate al tuo dominio personalizzato. Successivamente, completa la configurazione del dominio personalizzato con il tuo registrar del dominio (esterno a Code Engine).

Completamento della configurazione del dominio personalizzato con il registrar del dominio

Dopo la creazione dell'associazione del dominio personalizzato Code Engine, un record CNAME che corrisponde al nome dominio completo deve essere aggiunto alle impostazioni DNS del dominio personalizzato. Puoi trovare le impostazioni DNS nelle impostazioni di configurazione del registrar del dominio corrispondente. Completa questo passo in modo che il traffico che punta al tuo dominio personalizzato venga instradato verso la funzione Code Engine come definito nell'associazione del dominio personalizzato Code Engine.

Verifica del tuo dominio personalizzato

Dopo aver completato la configurazione del dominio personalizzato con il tuo registrar del dominio e dopo che sono stati pubblicati gli aggiornamenti del record CNAME, puoi verificare l'applicazione con l'associazione del dominio personalizzato.

Con un browser, richiama l'applicazione indirizzandola al dominio personalizzato utilizzando curl.

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

Output di esempio

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

L'output della chiamata al dominio personalizzato viene associato all'applicazione myapp, che usa l'immagine di esempio icr.io/codeengine/helloworld.

Per ulteriori informazioni sulle associazioni di dominio in Code Engine, vedi Gestione delle associazioni di domini personalizzate.