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:
- Esamina le considerazioni prima di utilizzare le associazioni del dominio personalizzate in Code Engine.
- Ottieni il dominio personalizzato da un registrar di dominio (esterno a Code Engine).
- Configurare un'associazione dominio personalizzata in Code Engine per applicazione (dalla console o dalla CLI Code Engine).
- 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
- Ottieni un dominio personalizzato da un registrar di dominio e il suo certificato TLS firmato e la chiave privata.
- Creare un progetto.
- Crea un'applicazione.
-
Dalla pagina ProgettiCode Engine, vai al tuo progetto.
-
Dalla pagina Panoramica, fare clic su Associazioni dominio.
-
Dalla pagina Associazioni dominio, fare clic su Crea per creare la propria associazione.
-
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,
- Fai clic su Crea.
- 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.
- 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,
- Fai clic su Select.
- Selezionare il segreto esistente dall'elenco che si desidera utilizzare.
-
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'applicazionemyapputilizza l'immagine di esempioicr.io/codeengine/helloworld. Per ulteriori informazioni sul codice utilizzato per questo esempio, consultarehelloworld. - 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.
- Specificare il nome dominio completo per il nome dominio personalizzato; ad esempio,
-
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
- Ottenere il nome dominio registrato.
- Ottenere il certificato TLS firmato e la chiave privata per il dominio personalizzato.
- Imposta il tuo ambiente CLICode Engine.
- Creare un progetto.
- Crea un'applicazione.
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.
-
Crea un segreto TLS con il certificato TLS firmato e la chiave privata. In questo esempio, il file
mycert.txtcontiene 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 filemyprivatekey.txtcontiene 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.txtOutput di esempio
Creating tls secret 'mytlssecret'... OK -
Crea l'associazione del dominio personalizzato tra l'applicazione Code Engine
myappe 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 mytlssecretOutput 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.
| 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.