Una vez que hayas creado un servicio de Media CDN (o varios), podrás emitir y adjuntar certificados SSL (TLS) para admitir la conectividad segura en navegadores y aplicaciones móviles.
Emitir un certificado gestionado
Para crear un certificado gestionado y adjuntarlo a tu servicio Media CDN, debes hacer lo siguiente:
- Demuestra que eres el propietario (es decir, que tienes autorización) de los dominios para los que quieres emitir certificados creando un token de verificación y añadiendo un registro DNS.
- Crea un certificado de tipo
EDGE_CACHE
con uno o varios nombres de dominio basados en esa autorización. - Adjunta ese certificado a uno o varios servicios de caché perimetral.
Debes tener los siguientes permisos de Gestión de Identidades y Accesos para autorizar, crear y adjuntar certificados a un servicio Edge Cache:
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 necesiten adjuntar un certificado ya creado a un servicio de Media CDN requieren los permisos de gestión de identidades y accesos certificatemanager.certs.get
, certificatemanager.certs.list
y certificatemanager.certs.use
.
Antes de empezar
- Debes tener un nombre de dominio registrado en el que puedas actualizar los registros DNS públicos.
- Consulta la información general sobre los certificados SSL.
Crear una autorización de DNS
Primero, debes crear una autorización de DNS para demostrar que eres el propietario del dominio antes de poder emitir certificados para él. La autorización de DNS usa el reto DNS-01 ACME y te permite emitir un certificado antes de dirigir el tráfico visible para los usuarios a tu servicio Edge Cache.
Asigna el valor domain
al nombre de dominio para el que quieras crear un certificado, como se indica a continuación:
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 devuelve una respuesta con los detalles del registro DNS que debes añadir.
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 añadir un nuevo registro a tu dominio alojado. Si usas otro proveedor de DNS, consulta su documentación para añadir un registro CNAME.
- Puede repetir este paso con cada dominio para el que necesite emitir un certificado.
- Los certificados pueden contener varios dominios o puedes emitir un certificado por dominio, según sea necesario. Una vez que tengas una autorización para un dominio, podrás usarla para emitir certificados.
- Te recomendamos que crees menos certificados en total, pero que cada uno de ellos incluya todos los nombres de dominio que se utilicen en tu servicio. De esta forma, se 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 a un máximo de cinco certificados. Si emites menos certificados, podrás mantenerte dentro de este límite.
Si necesitas recuperar los valores del registro DNS más adelante, envía una solicitud para obtener el authorizationName
que proporcionaste al crear la autorización de DNS:
Crear un certificado
Una vez que haya añadido el registro DNS que demuestre la propiedad de los dominios para los que quiera crear un certificado, podrá enviar una solicitud de creación de certificado.
La lista de dnsAuthorizations
debe coincidir con los nombres de las autorizaciones que hayas creado anteriormente. Si quiere añadir varios dominios al mismo certificado, proporcione una lista de domains[]
y dnsAuthorizations[]
coincidentes al hacer la solicitud.
Para 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
De esta forma, se crea un certificado con cada autorización de 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 tardar unos minutos (hasta una hora) en completarse, en función de lo siguiente:
- La rapidez con la que tu proveedor de DNS propaga los cambios de configuración.
- Cuántos dominios intentas validar y para cuántos quieres crear certificados.
En el campo state
se muestra el estado actual del certificado:
- APROVISIONAMIENTO: el certificado aún se está aprovisionando. Es probable que se deba a que la solicitud de creación del certificado se haya enviado hace poco.
- FAILED (ERROR): se devuelve 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 ha validado correctamente y el certificado se ha aprovisionado.
Para comprobar 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'
Una vez que se haya ACTIVE
el certificado, puedes adjuntarlo a un servicio de caché de Edge.
Adjuntar un certificado a un servicio
Una vez que hayas creado un certificado gestionado, podrás asociarlo a uno o varios de tus servicios Edge Cache.
Los certificados se pueden adjuntar a servicios nuevos y ya creados. Para ello, actualiza la lista de edgeSslCertificates
del servicio.
Debes tener los siguientes permisos de gestión de identidades y accesos para adjuntar certificados a un servicio Edge Cache:
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, sigue estos 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 añadir tu 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 devuelve una descripción de tu servicio, incluida la lista de edgeSslCertificates
que ahora está adjunta:
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Después de actualizar la configuración, el certificado se propagará a todas las ubicaciones perimetrales en cuestión de minutos. Para comprobar que el certificado está asociado a tu servicio Edge Cache antes de hacer cambios en el DNS, puedes enviar una solicitud a la dirección IPv4 o IPv6 asociada a tu servicio.
Reemplazar y quitar certificados
Para añadir y quitar certificados, actualice la lista de certificados.
Cuando se usa la marca --edge-ssl-certificate
de gcloud CLI, los certificados solo se añaden a la lista de certificados que ya hay, no se sustituyen. De esta forma, evitarás eliminar por error un certificado válido y activo.
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 e 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'.
Elimina los certificados que ya no quieras que utilice el servicio con tu editor de texto preferido:
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Guarda el archivo modificado y, a continuación, 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 límite en el número de servicios a los que se puede asociar un certificado, y cada servicio de caché perimetral puede hacer referencia a un máximo de cinco certificados.
Certificados autogestionados
Puedes subir tus propios certificados a Media CDN si tienes casos de uso específicos que lo requieran.
Para subir un certificado y su clave asociada a Certificate Manager, sigue estos pasos:
gcloud
Usa el comando gcloud certificate-manager certificates
. Asegúrate de especificar --scope=EDGE_CACHE
para los certificados asociados a 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 haya subido el certificado, puedes adjuntarlo a un EdgeCacheService como lo harías con un certificado gestionado.
Solucionar problemas de emisión de certificados
Consulta la guía de solución de problemas para saber cómo resolver los errores habituales de autorización y emisión de certificados.
Siguientes pasos
- Redirigir todas las solicitudes HTTP a HTTPS para cifrar las comunicaciones de forma predeterminada
- Ver registros de solicitudes con Logging
- Configurar solicitudes firmadas para proteger tu contenido
- Optimiza las claves de caché y los TTLs para mejorar las tasas de aciertos de caché
- Configurar la coincidencia de rutas avanzada y añadir orígenes adicionales