Creo que el título no deja lugar a la sorpresa. Sí, en esta entrada voy a explicar como configurar SendGrid y AWS CloudFront para poner a funcionar SSL con un dominio propio. Claro que la explicación reflejará mi experiencia personal haciéndolo desde cero, así que si algo aquí no encaja con tu propia experiencia comenta para enriquecer la información y ayudar a otros cuando se tengan que enfrentar a esta tarea.

Recientemente (muy recientemente) me vi en la necesidad de tener que poner a funcionar SendGrid con un dominio específico y con SSL, principalmente porque algunos de nuestros correos estaban llegando a la carpeta SPAM de nuestros usuarios y, después de investigar, descubrimos que parte del problema eran los enlaces de seguimiento (tracking links) que SendGrid inserta automáticamente cuando incluimos enlaces en los mensajes de correo.

La solución era, en teoría, muy simple: agregar un dominio personalizado a la cuenta de SendGrid y dejar que la plataforma se encargase del resto. Pero la teoría y la realidad, generalmente, no se llevan bien. Por eso, y para ayudar a quien se deje ayudar, dejó aquí los pasos que seguí para conseguir que SendGrid funcionase con mi dominio y con SSL.

Configurar Sendgrid

Lo primero es ingresar a la opción Sender Authentication dentro de la sección “Settings” de SendGrid. En esta pantalla existen algunas opciones relacionadas con la identidad del remitente. En realidad deberías tomarte el tiempo para configurar cada una de ellas (no entran dentro del alcance de esta entrada) antes de continuar.

Continuemos. En la sección Branding agrega el dominio que deseas utilizar para los enlaces de rastreo. Normalmente estos enlaces inician con algo parecido a xxxxx.sendgrid.com y este es, precisamente, la fuente de los problemas que tuvimos con nuestro correo llegando a SPAM. Una vez loa agregues tendrás que modificar los registros DNS para tu dominio en el panel de control de tu registrar agregando un nuevo registro CNAME que apunte al nuevo dominio (o subdominio) a SendGrid. Por ejemplo:

CNAME my.domain.com sendgrid.netcmder

Una vez agregado el nuevo registro CNAME hay que verificarlo en SendGrid oprimiendo el botón verificar, el proceso debería ser directo y sin problemas.

Configurar CloudFront

El siguiente paso obligatorio es configurar CloudFront para permitir el uso de SSL en nuestro (sub)dominio recién configurado y es aquí donde está lo divertido. ¿Porqué SSL? Si queremos mejorar la salud de nuestros emails a los ojos de los clientes de email necesitamos que los links insertados en los mensajes dirijan a sitios usando el protocolo SSL.

Antes de empezar: voy a considerar que ya tienes una cuenta en AWS y por lo tanto puedes crear una nueva distribución de CloudFront, de otro modo ve a crear una cuenta primero y luego vuelve para seguir leyendo.

Manos a la obra. Ingresamos a CloudFront y oprimimos la opción Create Distribution para ingresar al formulario de creación.

Figura 1. Configuración de orígenes en CloudFront.

En la opción dominio de orígen ingresamos sendgrid.net, ya que es el dominio desde donde CloudFront obtendrá los archivos. Recuerda que CloudFront básicamente deberá redirigir las peticiones que recibimos en nuestro dominio/subdominio configurado (para este ejemplo es my.domain.com) hacia el dominio de origen que en este caso es sendgrid.net.

En las capturas de pantalla te dejo todas las configuraciones necesarias para que CloudFront trabaje en equipo con SendGrid, solo recuerda que la opción “name” en la Figura 1 puede contener cualquier nombre con el que quieras identificar esta distribución.

Figura 2. Comportamiento del Caché.

Una sección especial que merece una nota especial son las configuraciones de seguridad. Para poder integrar CloudFront, SendGrid y SSL necesitarás generar un certificado SSL para utilizar en este dominio, de otro modo las conexiones SSL no serán válidas o perjudicarán tu dominio frente a los filtros de SPAM.

Entonces será necesario solicitar un certificado SSL (observa la opción Request certificate) directamente en AWS. Solo sigue los pasos y completa la configuración tal y como te muestro en la captura de pantalla y al finalizar crea la distribución.

Un último paso

Aún no termina el proceso, ahora es necesario cambiar el registro CNAME para el dominio/subdominio que asignamos a CloudFront. El proceso es similar a lo descrito en el paso Configurar SendGrid, con la diferencia de que en esta ocasión tendremos que cambiar el registro para que apunte al subdominio que te da CloudFront cuando creas la distribución, algo como:

CNAME. my.domain.com <some-chars>.cloudfront.net

Y ahora sí. Tan pronto se propague el nuevo registro haz una prueba ingresando a tu nuevo subdominio usando el protocolo HTTPS:

https://my.domain.com

Si todo funcionó bien debería hacer una redirección (probablemente mostrar un mensaje de error) a SendGrid.

Advertencia: después de cambiar el registro CNAME no vuelvas a verificar el dominio en SendGrid, porque provocará un error en la integración.

Por último solo deberás ponerte en contacto con el equipo de soporte de SendGrid para que habiliten SSL en tu cuenta, y listo, a disfrutar de una mejora en la salud de tu dominio para los clientes de email.

Espero que te haya servido, pero si crees que hace falta agregar o mejorar la información descrita por favor déjame un comentario para tomarlo en cuenta.

Comenta

Tu dirección de correo electrónico no será publicada.