Después de crear un servicio de Media CDN, puedes emitir y adjuntar certificados SSL (TLS) para admitir una conectividad segura en navegadores y aplicaciones para dispositivos móviles.
Emite un certificado administrado
Para crear un certificado administrado y adjuntarlo al servicio de Media CDN, debes hacer lo siguiente:
- Para demostrar la propiedad (“autorización”) de los dominios para los que deseas emitir certificados, crea un token de desafío y agrega un registro DNS.
- Crea un certificado de tipo
EDGE_CACHE
con uno o más nombres de dominio en función de esa autorización. - Adjunta ese certificado a uno o más servicios de almacenamiento en caché perimetral.
Debes tener los siguientes permisos de Identity and Access Management para autorizar, crear y adjuntar certificados a un servicio de almacenamiento en caché perimetral:
certificatemanager.certs.create
certificatemanager.certs.get
certificatemanager.certs.list
certificatemanager.certs.use
certificatemanager.dnsauthorizations.create
certificatemanager.dnsauthorizations.get
certificatemanager.dnsauthorizations.list
certificatemanager.dnsauthorizations.use
Los usuarios que necesitan adjuntar un certificado existente a un servicio de Media CDN requieren los permisos de IAM certificatemanager.certs.get
, certificatemanager.certs.list
y certificatemanager.certs.use
.
Antes de comenzar
- Debes tener un nombre de dominio registrado en el que puedas actualizar los registros DNS públicos.
- Lee la descripción general de los certificados SSL.
Crea una autorización de DNS
Primero, debes crear una autorización de DNS a fin de demostrar la propiedad del dominio antes de que puedas emitir certificados para él. La autorización de DNS usa el desafío DNS-01 ACME y te permite emitir un certificado antes de dirigir el tráfico orientado al usuario al servicio de almacenamiento en caché perimetral.
Configura el valor de domain
como el nombre de dominio para el que deseas crear un certificado, de la siguiente manera:
gcloud
Usa el comando gcloud certificate-manager dns-authorizations
:
gcloud certificate-manager dns-authorizations create DOMAIN_NAME_AUTH \ --domain="DOMAIN_NAME" gcloud certificate-manager dns-authorizations describe DOMAIN_NAME_AUTH
La CLI de gcloud muestra una respuesta con los detalles del registro DNS que debes agregar.
createTime: '2022-01-14T13:35:00.258409106Z' dnsResourceRecord: data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. name: _acme-challenge.example.com. type: CNAME domain: example.com name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization updateTime: '2022-01-14T13:35:01.571086137Z'
Terraform
Si usas Cloud DNS para tu dominio, consulta los pasos para agregar un registro nuevo a tu dominio alojado. Si usas otro proveedor de DNS, consulta su documentación para agregar un registro CNAME.
- Puedes repetir este paso para cada dominio para el que necesites emitir un certificado.
- Los certificados pueden contener varios dominios o puedes optar por emitir un certificado por dominio, según sea necesario. Después de tener una autorización para un dominio, puedes usarla para emitir certificados.
- Recomendamos crear menos certificados totales, cada uno con todos los nombres de dominio que se usaron para el servicio. Esto mejora el rendimiento del cliente cuando se usan varios dominios, ya que los clientes pueden beneficiarse de la reanudación de TLS con más frecuencia.
- Cada servicio de almacenamiento en caché perimetral puede hacer referencia hasta cinco certificados. Si emites menos certificados, puedes mantenerte dentro de este límite.
Si necesitas recuperar los valores del registro DNS en una fecha posterior, realiza una solicitud para el authorizationName
que proporcionaste cuando creaste la autorización de DNS:
Crea un certificado
Después de agregar el registro DNS que demuestra la propiedad de los dominios para los que deseas crear un certificado, puedes emitir una solicitud de creación de certificado.
La lista de dnsAuthorizations
debe coincidir con los nombres de las autorizaciones existentes que creaste antes en el proceso. Si deseas agregar varios dominios al mismo certificado, proporciona una lista de domains[]
y las dnsAuthorizations[]
coincidentes cuando realices la solicitud.
Si deseas crear un certificado mediante una autorización para test.example.com
llamada test-example-com
, sigue estos pasos:
gcloud
Usa el comando gcloud certificate-manager certificates
:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAME" \ --dns-authorizations="DOMAIN_NAME_AUTH" \ --scope=EDGE_CACHE
Esto crea un certificado con cada autorización DNS en el estado AUTHORIZING
y el certificado en el estado PROVISIONING
:
Create request issued for: [DOMAIN_NAME] Waiting for operation [projects/my-project/locations/global/operations/operatio n-1613425627385-5bb66ed644e91-3e2a2f1f-71979cf8] to complete...done. Created certificate [CERTIFICATE_NAME].
Terraform
La creación del certificado puede tomar unos minutos (y hasta una hora), según lo siguiente:
- La rapidez con la que tu proveedor de DNS propaga los cambios de configuración.
- Cantidad de dominios para los que intentas validar y crear certificados.
En el campo state
, se muestra el estado actual del certificado:
- APROVISIONAMIENTO: el certificado aún se está aprovisionando. Es probable que esto se deba a que la solicitud de creación de certificado se realizó hace poco.
- FALLA: Se muestra después de varios intentos de validar el dominio o emitir el certificado. Para obtener más información, consulta los campos
provisioning_issue
,authorization_attempt_info
yfailure_reason
. - ACTIVO: el dominio se validó correctamente y el certificado se aprovisionó.
Para verificar el estado del certificado, sigue estos pasos:
gcloud
Usa el comando gcloud certificate-manager certificates
:
gcloud certificate-manager certificates describe CERTIFICATE_NAME
En este ejemplo, la autorización de DNS es AUTHORIZED
y el estado del certificado es ACTIVE
:
createTime: '2021-02-07T20:03:39.867762684Z' expireTime: '2021-03-09T19:20:41Z' managed: authorizationAttemptInfo: - domain: DOMAIN_NAME state: AUTHORIZED dnsAuthorizations: - projects/111111111111/locations/global/dnsAuthorizations/test-example-com domains: - DOMAIN_NAME state: ACTIVE name: projects/my-project/locations/global/certificates/test-example-com scope: EDGE_CACHE subjectAlternativeNames: - DOMAIN_NAME updateTime: '2021-02-07T20:03:40.297242738Z'
Cuando el certificado sea ACTIVE
, puedes adjuntarlo a un servicio de almacenamiento en caché perimetral.
Adjunta un certificado a un servicio
Después de crear un certificado administrado, puedes asociarlo con uno o más de tus servicios de almacenamiento en caché perimetral.
Los certificados se pueden adjuntar a los servicios existentes y nuevos si se actualiza la lista de edgeSslCertificates
en el servicio.
Debes tener los siguientes permisos de IAM para adjuntar certificados a un servicio de almacenamiento en caché perimetral:
certificatemanager.certs.get
certificatemanager.certs.list
certificatemanager.certs.use
networkservices.edgeCacheServices.get
networkservices.edgeCacheServices.list
networkservices.edgeCacheServices.update
Para adjuntar un certificado a un servicio, completa los siguientes pasos.
gcloud
Ejecuta el comando gcloud edge-cache services export
para exportar el archivo YAML de tu servicio:
gcloud edge-cache services export MY_SERVICE \ --destination=my-service.yaml
Edita el archivo YAML exportado para agregar el certificado:
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Ejecuta el comando gcloud edge-cache services import
:
gcloud edge-cache services import MY_SERVICE \ --source=my-service.yaml
Resultado:
Request issued for: [MY_SERVICE] Updated service [MY_SERVICE]
El comando muestra una descripción de tu servicio, incluida la lista de edgeSslCertificates
adjunta:
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Después de actualizar la configuración, el certificado se propaga a todas las ubicaciones perimetrales en minutos. Para probar que el certificado esté asociado con el servicio de caché de Edge antes de realizar cambios de DNS, puedes emitir una solicitud en la dirección IPv4 o IPv6 asociada con el servicio.
Reemplaza y quita certificados
Para agregar y quitar certificados, actualiza la lista de certificados.
Cuando se usa la marca --edge-ssl-certificate
de la CLI de gcloud, los certificados solo se agregan a la lista de certificados existentes y no se reemplazan. Esto evita que quites por accidente un certificado activo válido.
Para quitar el certificado test-example-com
de nuestro servicio en el siguiente ejemplo, puedes exportar tu servicio a YAML con los comandos de importación y exportación.
name: my-service edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/test-example-com - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
En los siguientes comandos, se muestra cómo exportar el servicio, quitar la referencia del certificado y, luego, importar el servicio actualizado.
gcloud
Usa el comando gcloud edge-cache services
:
gcloud edge-cache services export MY_SERVICE --destination=my-service.yaml
Exported [projects/my-project/locations/global/edgeCacheServices/MY_SERVICE] to 'my-service.yaml'.
Quita los certificados que ya no quieras que use el servicio mediante tu editor de texto preferido:
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Guarda el archivo modificado y, luego, importa el servicio actualizado:
gcloud
Usa el comando gcloud edge-cache services
:
gcloud edge-cache services import MY_SERVICE --source=my-service.yaml
Request issued for: [MY_SERVICE] Updated service [MY_SERVICE].
No hay un límite en cuanto a la cantidad de servicios con los que se puede asociar un certificado, y cada servicio de almacenamiento en caché perimetral puede hacer referencia hasta a cinco certificados.
Certificados autoadministrados
Puedes subir tus propios certificados a Media CDN si tienes casos prácticos específicos que lo requieran.
Para subir un certificado y su clave asociada al administrador de certificados, haz lo siguiente:
gcloud
Usa el comando gcloud certificate-manager certificates
. Asegúrate de especificar --scope=EDGE_CACHE
para los certificados asociados con Media CDN.
gcloud certificate-manager certificates create stream-example-com \ --certificate-file=CERT.pem \ --private-key-file=PRIVATE_KEY.pem \ --scope=EDGE_CACHE
Create request issued for: [stream-example-com] Created certificate [stream-example-com].
Una vez que se subió el certificado, puedes adjuntarlo a un EdgeCacheService como lo harías con un certificado administrado.
Solucionar problemas relacionados con la emisión de certificados
Consulta la guía de solución de problemas para obtener información sobre cómo resolver errores comunes de autorización y emisión de certificados.
¿Qué sigue?
- Redirecciona todas las solicitudes HTTP a HTTPS para encriptar las comunicaciones de forma predeterminada.
- Ver registros de solicitudes con Logging
- Configura solicitudes firmadas para proteger tu contenido
- Optimiza las claves de caché y TTL para mejorar las tasas de aciertos de caché
- Configura la coincidencia avanzada de rutas y agrega orígenes adicionales