Questo argomento è inteso solo come esempio. Spiega come ottenere un certificato TLS dall'autorità di certificazione (CA) Let's Encrypt. Questi passaggi vengono forniti principalmente come esempio da seguire se non hai un altro modo pronto per ottenere una coppia di certificato/chiave autorizzata da un'autorità di certificazione. L'esempio mostra come generare certificati utilizzando l'autorità di certificazione Let's Encrypt, il client Certbot e Cloud DNS di Google Cloud Platform.
Dove puoi utilizzare queste credenziali
Devi fornire le credenziali TLS per due gateway di ingresso Istio esposti all'esterno del cluster:
| Gateway | Requisito TLS |
|---|---|
| Gateway in entrata MART | Richiede una coppia di certificato/chiave TLS autorizzata. |
| Gateway in entrata del runtime | Puoi utilizzare una coppia di certificato/chiave autofirmata o credenziali TLS autorizzate. |
Requisiti
Avrai bisogno di un nome di dominio ottenuto tramite un registrar di nomi di dominio. Puoi registrare un nome di dominio tramite Google Domains o un altro registrar di domini a tua scelta.
Configura Cloud DNS
Per ottenere le credenziali TLS autorizzate, devi disporre di un nome di dominio qualificato. I seguenti passaggi spiegano come utilizzare Google Cloud DNS per ottenere un nome di dominio e gestire i server di dominio.- Apri la console Google Cloud e accedi con l'account che hai creato nel passaggio 1: crea un account Google Cloud.
- Seleziona il progetto che hai creato nel passaggio 2: crea un progetto GCP.
- Abilita l'API Cloud DNS. Consulta Abilitazione delle API.
- Crea due indirizzi IP statici:
- Se utilizzi GKE, segui le istruzioni riportate in
Prenotare un indirizzo IP esterno statico per creare
due indirizzi IP statici. Puoi assegnare agli indirizzi il nome che preferisci, ad esempio:
apigee-hybrid-marteapigee-hybrid-runtime. Al termine, avrai due numeri IP da utilizzare nella configurazione del cluster nel passaggio successivo. Ad esempio:35.225.131.189e34.66.75.196 - Se utilizzi Anthos GKE, segui le istruzioni riportate nella documentazione di Anthos GKE per creare due indirizzi IP statici.
- Se utilizzi GKE, segui le istruzioni riportate in
Prenotare un indirizzo IP esterno statico per creare
due indirizzi IP statici. Puoi assegnare agli indirizzi il nome che preferisci, ad esempio:
- Crea una zona pubblica gestita. Per le istruzioni, vedi Creare una zona pubblica gestita.
- Ottieni l'IP esterno che hai prenotato per
apigee-hybrid-mart. - Crea un set di record per l'endpoint MART. Inserisci l'IP esterno ottenuto nel passaggio precedente e aggiungi un prefisso al nome di dominio, ad esempio
mart. Per le istruzioni, vedi Creare un nuovo record.
- Ottieni l'IP esterno che hai prenotato per
apigee-hybrid-runtime. - Crea un set di record per l'endpoint Ingress di Istio. Questo è l'indirizzo per effettuare chiamate API
al gateway ibrido. Inserisci l'IP esterno ottenuto nel passaggio precedente e aggiungi un prefisso al nome di dominio, ad esempio
apitest. Per le istruzioni, vedi Creare un nuovo record.
- Copia i dati del record DNS, come mostrato nell'esempio seguente:

- Torna alla pagina del tuo dominio su Google Domains.
- Seleziona il tuo dominio.
- Seleziona DNS.
- Nella sezione Server dei nomi, fai clic su Modifica.
Inserisci i server dei nomi di dominio che hai copiato dalla pagina Network Services Cloud DNS:

Ora Google Cloud DNS gestirà i record DNS del tuo dominio.
Installa Certbot su una VM
Ora che hai configurato Cloud DNS per gestire i server di dominio, installerai il client Certbot con il plug-in dns_google su una VM di Cloud. Il client ti consente di ottenere certificati autorizzati per il tuo dominio da un endpoint Let's Encrypt.
- Apri la console Google Cloud e accedi con l'account che hai creato nel passaggio 1: crea un account Google Cloud.
- Seleziona il progetto che hai creato nel passaggio 2: crea un progetto GCP.
- Seleziona IAM e amministrazione > Service account.
La visualizzazione Service account mostra un elenco dei service account del progetto.
- Per creare un nuovo account di servizio, fai clic su +Crea service account nella parte superiore della visualizzazione.
Viene visualizzata la pagina Dettagli del service account.
- Nel campo Nome service account, inserisci il nome del account di servizio.

(Facoltativo) Puoi aggiungere una descrizione nel campo Descrizione service account. Le descrizioni sono utili per ricordarti a cosa serve un determinato account di servizio.
- Fai clic su Crea.
GCP crea un nuovo account di servizio e mostra la visualizzazione Autorizzazioni service account. Utilizza questa visualizzazione per assegnare un ruolo al nuovo account di servizio.
- Fai clic sull'elenco a discesa Seleziona un ruolo.
- Seleziona il ruolo Proprietario progetto.
- Fai clic su Continua.
- Fai clic su Fine.
- Nella console GCP, seleziona Compute Engine > Istanze VM.
- Crea un'istanza VM denominata certmanager.
- Nella sezione Disco di avvio, scegli CentOS7 e 20 GB per l'unità permanente SSD.
- Imposta il service account su quello che hai creato sopra.
- Installa Certbot e il plug-in dns_google
sulla macchina ed esegui il client Certbot:
sudo su -yum -y install yum-utilsyum install certbot -yyum install certbot-dns-google -ycertbot certonly --dns-google -d *.your_domain_name,*.your_domain_name --server https://acme-v02.api.letsencrypt.org/directoryAd esempio:
sudo su -yum -y install yum-utilsyum install certbot -yyum install certbot-dns-google -ycertbot certonly --dns-google -d *.apigee-hybrid-docs.net,*.apigee-hybrid-docs.net --server https://acme-v02.api.letsencrypt.org/directory - Ora puoi trovare i file del certificato autorizzato e della chiave privata in questa directory:
cd /etc/letsencrypt/live/your_domain_name/Ad esempio:
cd /etc/letsencrypt/live/apigee-hybrid-docs.netlscert.pem chain.pem fullchain.pem privkey.pem README - Copia i file
fullchain.pemeprivkey.pemnella tua macchina locale. - Aggiorna il file di override in modo che punti al certificato e alla chiave privata. Per
hostAliases, utilizza il nome DNS che hai creato in precedenza.Ad esempio:
... envs: - name: test serviceAccountPaths: synchronizer: "your_keypath/synchronizer-manager-service-account.json udca: "your_keypath/analytic-agent-service-account.json virtualhosts: - name: default hostAliases: ["apitest.apigee-hybrid-docs.net"] sslCertPath: "$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem" sslKeyPath: "$HOME/hybrid/apigee-hybrid-setup/tls/privkey.pem" routingRules: - env: test mart: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-runtime sslCertPath: "$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem" sslKeyPath: "$HOME/hybrid/apigee-hybrid-setup/tls/privkey.pem" replicaCountMin: 1 replicaCountMax: 1 hostAlias: "mart.apigee-hybrid-docs.net" - Applica le modifiche:
Se hai modificato la configurazione di
mart, applica le modifiche:apigeectl apply -f your_overrides_file -c mart
Se hai modificato la configurazione di
envs, applica le modifiche:apigeectl apply -f your_overrides_file -c runtime
Testare la configurazione
Esegui il deployment e testa un proxy, come spiegato in Creazione e deployment di un nuovo proxy API.