- v1.15 (última)
- v1.14
- v1.13
- Lista de versiones admitidas
- v1.12
- v1.11
- v1.10
- v1.9
- v1.8
- v1.7
- Versión 1.6
- v1.5
- Versión 1.4
- Versión 1.3
- v1.2
- v1.1
Versiones compatibles:
Versiones no compatibles:
Este tema solo es un ejemplo. En él se explica cómo obtener un certificado TLS de la autoridad de certificación (CA) Let's Encrypt. Estos pasos se proporcionan principalmente como ejemplo a seguir si no tienes otra forma de obtener un par de certificado y clave autorizado por una autoridad de certificación. En el ejemplo se muestra cómo generar certificados con la CA Let's Encrypt, el cliente Certbot y Cloud DNS de Google Cloud Platform.
Dónde puedes usar estos certificados
Debes proporcionar certificados TLS para dos pasarelas de entrada de Istio que estén expuestas fuera del clúster:
Pasarela | Requisito de TLS |
---|---|
Pasarela de entrada en tiempo de ejecución | Puedes usar un par de claves y certificado autofirmado o certificados TLS autorizados. |
Pasarela de entrada de MART (opcional si no se usa Apigee Connect) | Requiere un par de clave y certificado TLS autorizado o un secreto de Kubernetes. |
Requisitos
Necesitarás un nombre de dominio obtenido a través de un registrador de nombres de dominio. Puedes registrar un nombre de dominio a través de Google Domains u otro registrador de dominios que prefieras.
Configurar Cloud DNS
Para obtener certificados TLS autorizados, debes tener un nombre de dominio cualificado. En los siguientes pasos se explica cómo usar Google Cloud DNS para obtener un nombre de dominio y gestionar los servidores de tu dominio.- Abre la consola de Google Cloud e inicia sesión con la cuenta que creaste en el paso 1: Crea una cuenta de Google Cloud.
- Selecciona el proyecto que has creado en el paso 2: Crea un proyecto de GCP.
- Si aún no lo has hecho, habilita la API Cloud DNS. Consulta Habilitar APIs.
- Para crear una dirección IP estática, sigue estos pasos:
- Si usas GKE, sigue las instrucciones de
Reservar una dirección IP externa estática para crear una dirección IP estática que los procesos externos puedan usar para comunicarse con el ingreso del tiempo de ejecución híbrido. Puede asignar el nombre que quiera a la dirección, por ejemplo,
apigee-hybrid-runtime
. Cuando termines, utilizarás el número de IP en la configuración del clúster en el siguiente paso. Por ejemplo:34.66.75.196
- Si usas Anthos GKE, sigue las instrucciones de la documentación de Anthos GKE para crear una dirección IP estática.
- Si usas GKE, sigue las instrucciones de
Reservar una dirección IP externa estática para crear una dirección IP estática que los procesos externos puedan usar para comunicarse con el ingreso del tiempo de ejecución híbrido. Puede asignar el nombre que quiera a la dirección, por ejemplo,
- Obtén la IP externa que acabas de reservar.
- Crea un conjunto de registros para el endpoint de entrada de Istio del tiempo de ejecución. Esta es la dirección para hacer llamadas a la API de la pasarela híbrida. Introduce la IP externa que has obtenido en el paso anterior y añade un prefijo al nombre de dominio, como
example-endpoint
. Para obtener instrucciones, consulta Crear un registro.- Crea una zona pública gestionada. Para obtener instrucciones, consulta el artículo Crear una zona pública gestionada.
- Crea un conjunto de registros con los siguientes datos:
- Nombre de DNS: el nombre del endpoint con el que se comunicarán las llamadas a la API externa, como
api-services
oexample-endpoint
. - Tipo de registro de recurso: A
- TTL y Unidad TTL: acepta los valores predeterminados.
- Dirección IP: la IP estática que has creado.
- Nombre de DNS: el nombre del endpoint con el que se comunicarán las llamadas a la API externa, como
- En la vista Detalles de la zona se mostrarán cuatro servidores DNS como datos NS de tu nueva zona. Copia los datos del registro DNS, tal como se muestra en el siguiente ejemplo:
- Vuelve a la página de tu dominio en tu registrador (por ejemplo, Google Domains).
- Selecciona tu dominio.
- Selecciona DNS.
- En la sección Servidores de nombres, haz clic en Editar.
Introduce los servidores de nombres de dominio que has copiado de la página Servicios de red > Cloud DNS. Por ejemplo:
Ahora, Google Cloud DNS gestionará los registros DNS de tu dominio.
Instalar Certbot en una máquina virtual
Ahora que has configurado Cloud DNS para gestionar los servidores de tu dominio, instalarás el cliente Certbot con el complemento dns_google en una VM de Cloud. El cliente te permite obtener certificados autorizados para tu dominio desde un endpoint de Let's Encrypt.
- Abre la consola de Google Cloud e inicia sesión con la cuenta que creaste en el paso 1: Crea una cuenta de Google Cloud.
- Selecciona el proyecto que has creado en el paso 2: Crea un proyecto de GCP.
- Selecciona IAM y administración > Cuentas de servicio.
En la vista Cuentas de servicio se muestra una lista de las cuentas de servicio del proyecto.
- Para crear una cuenta de servicio, haz clic en +Crear cuenta de servicio en la parte superior de la vista.
Se muestra la vista Detalles de la cuenta de servicio.
- En el campo Nombre de cuenta de servicio, introduce el nombre de la cuenta de servicio.
También puedes añadir una descripción en el campo Descripción de la cuenta de servicio. Las descripciones te ayudan a recordar para qué se usa una cuenta de servicio concreta.
- Haz clic en Crear.
GCP crea una cuenta de servicio y muestra la vista Permisos de la cuenta de servicio. Usa esta vista para asignar un rol a la nueva cuenta de servicio.
- Haz clic en la lista desplegable Seleccionar un rol.
- Selecciona el rol Propietario del proyecto.
- Haz clic en Continuar.
- Haz clic en Listo.
- En la consola de GCP, selecciona Compute Engine > Instancias de VM.
- Crea una instancia de VM llamada certmanager.
- En la sección Disco de arranque, elige CentOS7 y 20 GB para el disco persistente SSD.
- Asigna a la cuenta de servicio la que has creado más arriba.
- Instala Certbot y el complemento dns_google
en el equipo y ejecuta el cliente de 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
Por ejemplo:
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
- Ahora puedes encontrar los archivos de certificado autorizado y clave privada en este directorio:
cd /etc/letsencrypt/live/your_domain_name/
Por ejemplo:
cd /etc/letsencrypt/live/apigee-hybrid-docs.net
ls
cert.pem chain.pem fullchain.pem privkey.pem README - Copia los archivos
fullchain.pem
yprivkey.pem
en tu máquina local. - Opcional: Crea un secreto de Kubernetes con el par de certificado y clave. Consulta las instrucciones de la opción 2: secreto de Kubernetes en el artículo Configurar TLS y mTLS en la entrada de Istio.
- Actualiza el archivo de anulaciones para que apunte al certificado y a la clave privada. En
hostAliases
, usa el nombre de DNS que creaste anteriormente.Por ejemplo:
... envs: - name: test serviceAccountPaths: synchronizer: "your_keypath/synchronizer-manager-service-account.json udca: "your_keypath/analytic-agent-service-account.json virtualhosts: - name: my-env-group sslCertPath: "$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem" sslKeyPath: "$HOME/hybrid/apigee-hybrid-setup/tls/privkey.pem" mart: # Assuming you are not using Apigee Connect 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
O bien, si usas secretos de Kubernetes:
... envs: - name: test serviceAccountPaths: synchronizer: "your_keypath/synchronizer-manager-service-account.json udca: "your_keypath/analytic-agent-service-account.json virtualhosts: - name: my-env-group tlsMode: SIMPLE # Note: SIMPLE is the default, MUTUAL is also an available value. sslSecret: myorg-test-policy-secret" mart: # Assuming you are not using Apigee Connect nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-runtime sslSecret: myorg-test-policy-secret" replicaCountMin: 1 replicaCountMax: 1 ...
- Aplica los cambios:
Si has cambiado la configuración de
mart
, aplica los cambios:apigeectl apply -f your_overrides_file --all-envs
Si has cambiado la configuración de
envs
, aplica los cambios:apigeectl apply -f your_overrides_file --all-envs
Probar la configuración
Despliega y prueba un proxy, tal como se explica en Crear y desplegar un proxy de APIs.