Este tema solo se proporciona como ejemplo. En él, se explica cómo obtener un certificado TLS de la autoridad certificada (CA) Let's Encrypt. Estos pasos se proporcionan principalmente como un ejemplo a seguir si no tienes otra manera de obtener un certificado o un par de claves que esté autorizado por una CA. En el ejemplo, se muestra cómo generar certificados con la CA Let's Encrypt, el cliente de Certbot y Cloud DNS de Google Cloud Platform.
Dónde puedes usar estos certificados
Debes proporcionar certificados TLS para las puertas de enlace de entrada del entorno de ejecución expuestas fuera del clúster.
Consulta también Conexiones externas.Requisitos
Necesitarás un nombre de dominio que obtuviste mediante un registrador de nombres de dominio. Puedes registrar un nombre de dominio mediante Google Domains o a través de otro registrador de dominios que elijas.
Configura Cloud DNS
Para obtener certificados TLS autorizados, debes tener un nombre de dominio calificado. En los siguientes pasos, se explica cómo usar Google Cloud DNS para obtener un nombre de dominio y administrar tus servidores de dominio.- Abre la consola de Google Cloud y accede a tu cuenta.
- Selecciona el proyecto en el que está instalado Apigee Hybrid.
- Si aún no lo hiciste, habilita la API de Cloud DNS. Consulta Habilita las API.
- Crea una dirección IP estática:
- Si estás en GKE, sigue las instrucciones en Reserva una dirección IP externa estática a fin de crear una dirección IP estática puedan usar los procesos externos para comunicarse con la entrada del entorno de ejecución híbrido. Puedes asignar a la dirección el nombre que desees, por ejemplo:
apigee-hybrid-runtime
. Cuando termines, usarás el número de IP en la configuración del clúster del siguiente paso. Por ejemplo:34.66.75.196
- Si estás en Anthos GKE, sigue las instrucciones en la documentación de Anthos GKE para crear una dirección IP estática.
- Si estás en GKE, sigue las instrucciones en Reserva una dirección IP externa estática a fin de crear una dirección IP estática puedan usar los procesos externos para comunicarse con la entrada del entorno de ejecución híbrido. Puedes asignar a la dirección el nombre que desees, por ejemplo:
- Obtén la IP externa que acabas de reservar.
- Crea un conjunto de registros para el extremo de entorno de ejecución de Istio. Esta es la dirección para realizar llamadas a la API a la puerta de enlace híbrida. Ingresa la IP externa que obtuviste en el paso anterior y agrega un prefijo al nombre de dominio, como
example-endpoint
. Para obtener instrucciones, consulta Crea un registro nuevo.- Crea una zona pública administrada. Para obtener instrucciones, consulta Crea una zona pública administrada.
- Crea un conjunto nuevo de registros con:
- Nombre de DNS: el nombre del extremo con el que se comunicarán las llamadas a la API externas, como
api-services
oexample-endpoint
- Tipo de registro de recursos: A
- TTL y UnidadTTL: Acepta los valores predeterminados.
- Dirección IP: la IP estática que creaste.
- Nombre de DNS: el nombre del extremo con el que se comunicarán las llamadas a la API externas, como
- La vista Detalles de la zona mostrará una lista de los cuatro servidores DNS de preferencia, como los datos NS de tu zona nueva. Copia los datos del registro DNS, como se muestra en el siguiente ejemplo:
- Regresa a la página del dominio en tu registrador (por ejemplo, Google Domains).
- Selecciona tu dominio.
- Selecciona DNS.
- En la sección Servidores de nombres, haz clic en Editar.
Ingresa los servidores de nombres de dominio que copiaste de la página Servicios de red de Cloud DNS. Por ejemplo:
Ahora, Google Cloud DNS administrará los registros DNS de tu dominio.
Instala Certbot en una VM
Ahora que configuraste Cloud DNS para administrar tus servidores de 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 extremo Let's Encrypt.
- Abre la consola de Google Cloud y accede con la cuenta que creaste en el Paso 1: Crea una cuenta de Google Cloud.
- Selecciona el proyecto que creaste en el Paso 2: Crea un proyecto de Google Cloud.
- Selecciona IAM y administrador > Cuenta de servicio.
En la vista de cuentas de servicio, se muestra una lista de las cuentas de servicio del proyecto.
- Para crear una cuenta de servicio nueva, haz clic en + Crear cuenta de servicio (+ Create Service Account) en la parte superior de la vista.
Aparecerá la vista Detalles de la cuenta de servicio (Service account details).
- En el campo Nombre de la cuenta de servicio (Service account name), ingresa el nombre de la cuenta de servicio.
De forma opcional, puedes agregar una descripción en el campo Descripción de la cuenta de servicio (Service account description). Las descripciones son útiles a fin de recordarte para qué se usa una cuenta de servicio específica.
- Haz clic en Crear.
Google Cloud crea una nueva cuenta de servicio y muestra la vista Permisos de la cuenta de servicio. Usa esta vista para asignar una función a tu cuenta de servicio nueva.
- Haz clic en la lista desplegable Seleccionar una función.
- Selecciona la función Propietario del proyecto.
- Haga clic en Continuar.
- Haz clic en Listo.
- En la consola de Google Cloud, 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 la unidad persistente SSD.
- Establece la cuenta de servicio como la que creaste antes.
- Instala Certbot y el complemento dns_google en la máquina 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 tu certificado autorizado y los archivos de claves privadas 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.key README - Copia los archivos
fullchain.pem
yprivkey.key
en tu máquina local. - Opcional: Crea un Secret de Kubernetes con el par de claves o el certificado. Consulta las instrucciones en la Opción 2: Secret de Kubernetes en Configura TLS y mTLS, en la entrada de Istio.
- Actualiza tu archivo de anulaciones para que apunte al certificado y a la clave privada.
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.key"
O, si usas Secrets 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" ...
- Aplica los cambios a la configuración de
envs
:Helm
Ejecuta
actualización de helm para cada entorno que desees actualizar. helm upgrade ENV_NAME apigee-env/ \ --namespace apigee \ --set env=ENV_NAME \ --atomic \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --env ENV_NAME
O bien, para actualizar el componente en todos los entornos, de la siguiente manera:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --all-envs
Prueba la configuración
Implementa y prueba un proxy Consulta Compila tu primera descripción general del proxy de API.