Ce sujet est fourni à titre d'exemple uniquement. Il explique comment obtenir un certificat TLS auprès de l'autorité de certification Let's Encrypt. Ces étapes sont principalement fournies à titre d'exemple si vous ne disposez pas d'un autre moyen prêt à obtenir une paire certificat/clé autorisée par une autorité de certification. L'exemple montre comment générer des certificats à l'aide de l'autorité de certification Let's Encrypt, du client Certbot et du service Cloud DNS de Google Cloud Platform.
Où vous pouvez utiliser ces identifiants
Vous devez fournir des identifiants TLS pour deux passerelles d'entrée Istio exposées en dehors du cluster :
Passerelle | Exigence TLS |
---|---|
Passerelle d'entrée MART | Nécessite une paire certificat/clé TLS autorisée. |
Passerelle d'entrée de l'environnement d'exécution | Vous pouvez utiliser une paire certificat/clé autosignée ou des identifiants TLS autorisés. |
Exigences
Vous aurez besoin d'un nom de domaine obtenu via un service d'enregistrement de noms de domaine. Vous pouvez enregistrer un nom de domaine via Google Domains ou un autre service d'enregistrement de votre choix.
Configurer Cloud DNS
Pour obtenir des identifiants TLS autorisés, vous devez disposer d'un nom de domaine qualifié. La procédure suivante explique comment utiliser Google Cloud DNS pour obtenir un nom de domaine et gérer vos serveurs de domaine.- Ouvrez Google Cloud Console, puis connectez-vous avec le compte que vous avez créé à l'étape 1 : Créer un compte Google Cloud.
- Sélectionnez le projet que vous avez créé à l'Étape 2 : Créer un projet GCP.
- Activez l'API Cloud DNS. Voir Activation des API.
- Créez deux adresses IP statiques :
- Si vous utilisez GKE, suivez les instructions de la section
Réserver une adresse IP externe statique pour créer deux adresses IP statiques. Vous pouvez donner aux adresses le nom de votre choix, par exemple :
apigee-hybrid-mart
etapigee-hybrid-runtime
. Lorsque vous avez terminé, vous aurez deux numéros IP à utiliser dans la configuration du cluster à l'étape suivante. Par exemple,35.225.131.189
et34.66.75.196
- Si vous utilisez Anthos GKE, suivez les instructions de la documentation Anthos GKE pour créer deux adresses IP statiques.
- Si vous utilisez GKE, suivez les instructions de la section
Réserver une adresse IP externe statique pour créer deux adresses IP statiques. Vous pouvez donner aux adresses le nom de votre choix, par exemple :
- Créer une zone gérée publique Pour obtenir des instructions, consultez la page Créer une zone publique gérée.
- Obtenez l'adresse IP externe que vous avez réservée pour
apigee-hybrid-mart
. - Créez un jeu d'enregistrements pour le point de terminaison MART. Saisissez l'adresse IP externe obtenue à l'étape précédente et ajoutez un préfixe au nom de domaine, tel que
mart
. Pour obtenir des instructions, consultez l'article Créer un enregistrement. - Obtenez l'adresse IP externe que vous avez réservée pour
apigee-hybrid-runtime
. - Créez un jeu d'enregistrements pour le point de terminaison d'entrée Istio. Il s'agit de l'adresse permettant d'effectuer des appels d'API vers la passerelle hybride. Saisissez l'adresse IP externe obtenue à l'étape précédente et ajoutez un préfixe au nom de domaine, tel que
apitest
. Pour obtenir des instructions, consultez l'article Créer un enregistrement. - Copiez les données d'enregistrement DNS, comme indiqué dans l'exemple suivant :
- Revenez à la page de votre domaine sur Google Domains.
- Sélectionnez votre domaine.
- Sélectionnez DNS.
- Dans la section "Serveurs de noms", cliquez sur Modifier.
Saisissez les serveurs de noms de domaine que vous avez copiés depuis la page Cloud Services DNS :
Votre Google Cloud DNS gère désormais les enregistrements DNS pour votre domaine.
Installer Certbot sur une VM
Maintenant que Cloud DNS est configuré pour gérer vos serveurs de domaine, vous allez installer le client Certbot avec le plug-in dns_google sur une VM Cloud. Le client vous permet d'obtenir des certificats autorisés pour votre domaine à partir d'un point de terminaison Let's Encrypt.
- Ouvrez Google Cloud Console, puis connectez-vous avec le compte que vous avez créé à l'étape 1 : Créer un compte Google Cloud.
- Sélectionnez le projet que vous avez créé à l'Étape 2 : Créer un projet GCP.
- Sélectionnez IAM et administration > Comptes de service.
La vue des comptes de service affiche la liste des comptes de service du projet.
- Pour créer un compte de service, cliquez sur + Créer un compte de service en haut de la vue.
La vue Détails du compte de service s'affiche.
- Dans le champ Nom du compte de service, saisissez le nom du compte de service.
Vous pouvez éventuellement ajouter une description dans le champ Description du compte de service. Les descriptions sont utiles pour vous rappeler quel compte de service particulier est utilisé.
- Cliquez sur Créer.
GCP crée un compte de service et affiche la vue Autorisations de compte de service. Utilisez cette vue pour attribuer un rôle à votre nouveau compte de service.
- Cliquez sur la liste déroulante Sélectionner un rôle.
- Sélectionnez le rôle Propriétaire du projet.
- Cliquez sur Continuer.
- Cliquez sur OK.
- Dans la console GCP, sélectionnez Compute Engine > Instances de VM.
- Créez une instance de VM nommée certmanager :
- Dans la section Disque de démarrage, choisissez CentOS7 et 20 Go pour le disque persistant SSD.
- Définissez le compte de service sur celui que vous avez créé ci-dessus.
- Installez certbot et le plug-in dns_google sur la machine, puis exécutez le client certbot :
sudo su -
yum -y install yum-utils
yum install certbot -y
yum install certbot-dns-google -y
certbot certonly --dns-google -d *.your_domain_name,*.your_domain_name --server https://acme-v02.api.letsencrypt.org/directory
Exemple :
sudo su -
yum -y install yum-utils
yum install certbot -y
yum install certbot-dns-google -y
certbot certonly --dns-google -d *.apigee-hybrid-docs.net,*.apigee-hybrid-docs.net --server https://acme-v02.api.letsencrypt.org/directory
- Vous pouvez maintenant trouver vos fichiers de certificat et de clé privée dans ce répertoire :
cd /etc/letsencrypt/live/your_domain_name/
Exemple :
cd /etc/letsencrypt/live/apigee-hybrid-docs.net
ls
cert.pem chain.pem fullchain.pem privkey.pem README - Copiez les fichiers
fullchain.pem
etprivkey.pem
sur votre ordinateur local. - Mettez à jour votre fichier de remplacement pour qu'il pointe vers le certificat et la clé privée. Pour
hostAliases
, utilisez le nom DNS que vous avez créé précédemment.Exemple :
... 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"
- Appliquer les modifications
Si vous avez modifié la configuration
mart
, appliquez les modifications :apigeectl apply -f your_overrides_file -c mart
Si vous avez modifié la configuration
envs
, appliquez les modifications :apigeectl apply -f your_overrides_file -c runtime
Tester la configuration
Déployez et testez un proxy, comme expliqué dans la section Créer et déployer un nouveau proxy API.