Questo tutorial mostra come utilizzare Certificate Manager per eseguire il deployment di un certificato autogestito globale.
I seguenti bilanciatori del carico supportano i certificati autogestiti globali:
- Bilanciatore del carico delle applicazioni esterno globale
- Bilanciatore del carico delle applicazioni classico
- Bilanciatore del carico di rete proxy esterno globale
- Bilanciatore del carico di rete proxy classico
Se vuoi eseguire il deployment su bilanciatori del carico regionali o interregionali, consulta le seguenti pagine:
Obiettivi
Questo tutorial mostra come completare le seguenti attività:
- Carica un certificato autogestito in Certificate Manager.
- Esegui il deployment del certificato su un bilanciatore del carico supportato utilizzando un proxy HTTPS di destinazione.
Prima di iniziare
- Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Certificate Manager APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Certificate Manager APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
Ruoli obbligatori
Assicurati di disporre dei seguenti ruoli per completare le attività descritte in questo tutorial:
Certificate Manager Owner (
roles/certificatemanager.owner)Obbligatorio per creare e gestire le risorse di Certificate Manager.
Compute Load Balancer Admin (
roles/compute.loadBalancerAdmin) o Compute Network Admin (roles/compute.networkAdmin)Obbligatorio per creare e gestire il proxy HTTPS di destinazione.
Per ulteriori informazioni, consulta le seguenti risorse:
- Ruoli e autorizzazioni per Certificate Manager.
- Ruoli e autorizzazioni IAM di Compute Engine per Compute Engine.
Crea il bilanciatore del carico
Questo tutorial presuppone che tu abbia già creato e configurato i backend, i controlli di integrità, i servizi di backend e le mappe URL del bilanciatore del carico. Se hai creato un bilanciatore del carico delle applicazioni esterno, prendi nota del nome della mappa URL perché ti servirà più avanti in questo tutorial.
Se non hai creato il bilanciatore del carico, consulta le seguenti pagine per crearne uno:
Per creare un bilanciatore del carico delle applicazioni esterno globale, vedi Configura un bilanciatore del carico delle applicazioni esterno globale con backend di gruppi di istanze VM.
Per creare un bilanciatore del carico delle applicazioni classico, vedi Configura un bilanciatore del carico delle applicazioni classico con un backend del gruppo di istanze gestite gestite.
Per creare un bilanciatore del carico di rete proxy esterno globale (proxy SSL), vedi Configura un bilanciatore del carico di rete proxy esterno globale (proxy SSL) con backend di gruppi di istanze VM backends.
Per creare un bilanciatore del carico di rete proxy classico (proxy SSL), vedi Configura un bilanciatore del carico di rete proxy classico (proxy SSL) con backend di gruppi di istanze VM.
Crea una chiave privata e un certificato
Per creare una chiave privata e un certificato:
Utilizza un'autorità di certificazione (CA) di terze parti attendibile per emettere il certificato insieme alla chiave associata.
Verifica che il certificato sia concatenato correttamente e che la radice sia attendibile.
Prepara i seguenti file con codifica PEM:
- Il file del certificato (CRT)
- Il file della chiave privata corrispondente (KEY)
Per informazioni su come richiedere e convalidare un certificato, vedi Create a private key and certificate.
Carica un certificato autogestito in Certificate Manager
Per caricare il certificato in Certificate Manager:
Console
Nella Google Cloud console, vai alla pagina Certificate Manager.
Nella scheda Certificati, fai clic su Aggiungi certificato.
Nel campo Nome certificato, inserisci un nome univoco per il certificato.
(Facoltativo) Nel campo Descrizione, inserisci una descrizione del certificato. La descrizione ti consente di identificare il certificato.
Per Località, seleziona Globale.
Per Ambito, seleziona Predefinito.
Per Tipo di certificato, seleziona Crea certificato autogestito.
Per il campo Certificato, esegui una delle seguenti operazioni:
- Fai clic sul pulsante Carica e seleziona il file del certificato in formato PEM.
- Copia e incolla i contenuti di un certificato in formato PEM. I contenuti devono iniziare con
-----BEGIN CERTIFICATE-----e terminare con-----END CERTIFICATE-----.
Per il campo Certificato chiave privata, esegui una delle seguenti operazioni:
- Fai clic sul pulsante Carica e seleziona la chiave privata. La chiave privata deve essere in formato PEM e non protetta da una passphrase.
- Copia e incolla i contenuti di una chiave privata in formato PEM. Le chiavi private devono iniziare con
-----BEGIN PRIVATE KEY-----e terminare con-----END PRIVATE KEY-----.
Nel campo Etichette, specifica le etichette da associare al certificato. Per aggiungere un'etichetta, fai clic su Aggiungi etichetta e specifica una chiave e un valore per l'etichetta.
Fai clic su Crea.
Il nuovo certificato viene visualizzato nell'elenco dei certificati.
gcloud
Per creare un certificato autogestito globale, utilizza il certificate-manager certificates create comando:
gcloud certificate-manager certificates create CERTIFICATE_NAME \
--certificate-file="CERTIFICATE_FILE" \
--private-key-file="PRIVATE_KEY_FILE"
Sostituisci quanto segue:
CERTIFICATE_NAME: il nome del certificato.CERTIFICATE_FILE: il percorso e il nome file del file del certificato CRT.PRIVATE_KEY_FILE: il percorso e il nome file del file della chiave privata KEY.
Terraform
Per caricare un certificato autogestito, puoi utilizzare una
google_certificate_manager_certificate risorsa con il self_managed blocco.
API
Carica il certificato effettuando una richiesta POST al metodo certificates.create come segue:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
self_managed: {
pem_certificate: "PEM_CERTIFICATE",
pem_private_key: "PEM_KEY",
}
}
Sostituisci quanto segue:
PROJECT_ID: l'ID del tuo Google Cloud progetto.CERTIFICATE_NAME: il nome del certificato.PEM_CERTIFICATE: il certificato PEM.PEM_KEY: la chiave PEM.
Esegui il deployment del certificato autogestito su un bilanciatore del carico
Per eseguire il deployment del certificato autogestito globale, utilizza una mappa dei certificati.
Crea una mappa dei certificati
Crea una mappa dei certificati che faccia riferimento alla voce della mappa dei certificati associata al tuo certificato:
gcloud
Per creare una mappa dei certificati, utilizza il comando gcloud certificate-manager maps create:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Sostituisci CERTIFICATE_MAP_NAME con il nome della mappa dei certificati di destinazione.
Terraform
Per creare una mappa dei certificati, puoi utilizzare una
google_certificate_manager_certificate_map risorsa.
Crea una voce della mappa dei certificati
Crea una voce della mappa dei certificati e associala al certificato e alla mappa dei certificati:
gcloud
Per creare una voce della mappa dei certificati, utilizza il gcloud certificate-manager maps entries create comando:
gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
--map="CERTIFICATE_MAP_NAME" \
--certificates="CERTIFICATE_NAME" \
--hostname="HOSTNAME"
Sostituisci quanto segue:
CERTIFICATE_MAP_ENTRY_NAME: il nome della voce della mappa dei certificati.CERTIFICATE_MAP_NAME: il nome della mappa dei certificati a cui è associata la voce della mappa dei certificati.CERTIFICATE_NAME: il nome del certificato che vuoi associare alla voce della mappa dei certificati.HOSTNAME: il nome host che vuoi associare alla voce della mappa dei certificati.Se vuoi creare un certificato che copra sia un dominio con caratteri jolly sia un dominio principale, specifica il nome host con una radice e un carattere jolly, ad esempio
example.come*.example.com. Inoltre, devi specificare due voci della mappa dei certificati: una perexample.come l'altra per*.example.com.
Terraform
Per creare una voce della mappa dei certificati con un dominio principale, utilizza una
google_certificate_manager_certificate_map_entry risorsa.
Per creare una voce della mappa dei certificati con un dominio con caratteri jolly, utilizza una
google_certificate_manager_certificate_map_entry risorsa.
Verifica che la voce della mappa dei certificati sia attiva
Verifica che la voce della mappa dei certificati sia attiva prima di collegare la mappa dei certificati corrispondente al proxy di destinazione.
Per verificare la voce della mappa dei certificati, utilizza il gcloud certificate-manager maps entries describe comando:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
--map="CERTIFICATE_MAP_NAME"
Sostituisci quanto segue:
CERTIFICATE_MAP_ENTRY_NAME: il nome della voce della mappa dei certificati.CERTIFICATE_NAME: il nome del certificato che vuoi associare alla voce della mappa dei certificati.
L'output è simile al seguente:
certificates: createTime: '2021-09-06T10:01:56.229472109Z' hostname: example.com name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry state: ACTIVE updateTime: '2021-09-06T10:01:58.277031787Z'
Collega la mappa dei certificati al proxy di destinazione
Puoi collegare la mappa dei certificati a un nuovo proxy di destinazione o a uno esistente.
gcloud
Per collegare la mappa dei certificati a un nuovo proxy di destinazione, utilizza il gcloud compute target-https-proxies create comando:
gcloud compute target-https-proxies create PROXY_NAME \
--certificate-map="CERTIFICATE_MAP_NAME" \
--url-map="URL_MAP" \
--global
Sostituisci quanto segue:
PROXY_NAME: il nome del proxy di destinazione.CERTIFICATE_MAP_NAME: il nome della mappa dei certificati che fa riferimento alla voce della mappa dei certificati e al certificato associato.URL_MAP: il nome della mappa URL
Per collegare la mappa dei certificati a un proxy HTTPS di destinazione esistente, utilizza il gcloud compute target-https-proxies update comando. Se non conosci il nome del proxy di destinazione esistente, vai alla pagina **Proxy di destinazione** e prendi nota del nome del proxy di destinazione.
gcloud compute target-https-proxies update PROXY_NAME \
--certificate-map="CERTIFICATE_MAP_NAME" \
--global
Dopo aver creato o aggiornato il proxy di destinazione, esegui il comando seguente per verificarlo:
gcloud compute target-https-proxies list
Terraform
Per collegare la mappa dei certificati al proxy di destinazione, puoi utilizzare una
google_compute_target_https_proxy risorsa.
Quando configuri un proxy di destinazione, se colleghi i certificati TLS (SSL) direttamente e anche tramite una mappa dei certificati, il proxy utilizza i certificati a cui fa riferimento la mappa dei certificati e ignora i certificati TLS (SSL) collegati direttamente.
Libera spazio
Per evitare addebiti sul tuo Google Cloud account per le risorse utilizzate in questo tutorial, eliminale.
Elimina il bilanciatore del carico e le relative risorse.
Vedi Esegui la pulizia di una configurazione di bilanciamento del carico.
Elimina o scollega la mappa dei certificati dal proxy.
Per eliminare la mappa dei certificati, esegui il comando seguente:
gcloud compute target-https-proxies delete PROXY_NAME
Se vuoi conservare il proxy HTTPS di destinazione, scollega la mappa dei certificati dal proxy.
- Se al proxy sono collegati direttamente certificati TLS (SSL), lo scollegamento della mappa dei certificati fa sì che il proxy riprenda a utilizzare i certificati TLS (SSL) collegati direttamente.
- Se al proxy non sono collegati direttamente certificati TLS (SSL), non è possibile scollegare la mappa dei certificati dal proxy. Prima di poter scollegare la mappa dei certificati, devi collegare direttamente al proxy almeno un certificato TLS (SSL).
Per scollegare la mappa dei certificati, esegui il comando seguente:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-mapSostituisci
PROXY_NAMEcon il nome del proxy di destinazione.Elimina la voce della mappa dei certificati dalla mappa dei certificati:
gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"Sostituisci quanto segue:
CERTIFICATE_MAP_ENTRY_NAME: il nome della voce della mappa dei certificati.CERTIFICATE_MAP_NAME: il nome della mappa dei certificati.
Elimina la mappa dei certificati:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Sostituisci
CERTIFICATE_MAP_NAMEcon il nome della mappa dei certificati.Elimina il certificato caricato:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Sostituisci
CERTIFICATE_NAMEcon il nome del certificato.