En este tutorial, aprenderás cómo instalar un certificado SSL en un servidor Courier IMAP. Combinarás tu certificado, la clave privada y la cadena de la CA en un único archivo PEM, apuntarás la configuración TLS_CERTFILE de Courier hacia él y reiniciarás el servicio para que IMAPS y POP3S sirvan el nuevo certificado.
Generar un código CSR en un servidor Courier IMAP
Si ya has generado tu CSR y has recibido los archivos SSL, omite la parte 1 y ve directamente a los pasos de instalación.
El CSR (Certificate Signing Request) es un bloque de texto codificado que contiene tus datos de contacto. Lo creas y lo envías a tu Autoridad de Certificación (CA) para pasar la validación SSL. Generar el CSR también crea la clave privada correspondiente, que permanece en tu servidor y es necesaria para la instalación. Tienes dos opciones:
- Usa nuestro Generador de CSR para crear el CSR automáticamente.
- Sigue nuestro tutorial paso a paso sobre cómo generar un CSR en Courier IMAP Server.
Para abrir el archivo CSR, usa cualquier editor de texto plano. Al realizar el pedido, copia todo el bloque, incluidas las líneas BEGIN y END. Guarda a salvo el archivo de la clave privada: la combinarás en tu archivo PEM durante la instalación.
Instalar un certificado SSL en Courier IMAP Server
Tras la validación, tu CA te envía por correo electrónico un archivo ZIP con tus archivos SSL: el certificado principal (del servidor) y uno o más certificados intermedios (de la CA). Extrae el archivo en tu servidor y luego sigue los pasos a continuación.
Paso 1: Combina el certificado, la cadena y la clave en un único archivo PEM
Courier lee el certificado y la clave privada de un único archivo PEM configurado en TLS_CERTFILE. Concatena los archivos en este orden: primero tu certificado del servidor, luego la cadena intermedia de la CA, y después tu clave privada. Desde el directorio que contiene los archivos extraídos, ejecuta:
cat yourdomain.crt yourdomain.ca-bundle yourdomain.key > imapd.pem
sudo mv imapd.pem /etc/courier/imapd.pem
sudo chmod 600 /etc/courier/imapd.pem
Si tu CA entregó los certificados intermedios como archivos separados en lugar de un único .ca-bundle, lista cada uno entre el certificado y la clave. El archivo PEM final debería quedar así:
-----BEGIN CERTIFICATE-----
(the text of your primary SSL certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(the text of the intermediate / CA chain certificate)
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
(the text of your private key)
-----END PRIVATE KEY-----
Las claves más antiguas pueden estar etiquetadas como BEGIN RSA PRIVATE KEY en lugar de BEGIN PRIVATE KEY; ambas son válidas. La clave no debe estar cifrada con una frase de contraseña, ya que Courier la carga sin solicitar ninguna. El archivo PEM debe ser legible únicamente por root (el chmod 600 anterior), ya que contiene la clave privada.
Si prefieres mantener la clave privada en su propio archivo, no incluyas la clave en el PEM y configura TLS_PRIVATE_KEYFILE con la ruta de la clave en el archivo de configuración (Paso 2). Cuando la clave ya está incluida en TLS_CERTFILE, el archivo de clave separado es opcional.
Paso 2: Apunta Courier hacia tu archivo PEM
Abre el archivo de configuración que Courier usa para IMAP sobre SSL. La ruta depende de tu distribución: normalmente es /etc/courier/imapd-ssl, o /usr/lib/courier-imap/etc/imapd-ssl en algunos sistemas. Edítalo con un editor de texto, por ejemplo:
sudo nano /etc/courier/imapd-ssl
Localiza la línea TLS_CERTFILE (o agrégala si no existe) y configúrala con tu archivo PEM:
TLS_CERTFILE=/etc/courier/imapd.pem
Si mantuviste la clave privada por separado en el Paso 1, configura también su ruta:
TLS_PRIVATE_KEYFILE=/etc/courier/imapd.key
Ya que estás en este archivo, refuerza la configuración TLS. Elimina o comenta cualquier línea que fuerce un protocolo obsoleto, como TLS_PROTOCOL=SSL3: SSLv3 y las primeras versiones de TLS 1.0 y 1.1 son inseguras y deben deshabilitarse. Configura Courier para requerir TLS 1.2 o superior. TLS_PROTOCOL se aplica al puerto SSL dedicado (IMAPS), y TLS_STARTTLS_PROTOCOL se aplica a STARTTLS en el puerto estándar:
TLS_PROTOCOL=TLSv1.2
TLS_STARTTLS_PROTOCOL=TLSv1.2
El valor TLSv1.2 significa «TLS 1.2 o superior», por lo que TLS 1.3 se negocia igualmente cuando tu compilación de OpenSSL lo admite. No necesitas configurar TLS_TRUSTCERTS para servir tu certificado a los clientes de correo; esa variable solo se usa para verificar certificados de cliente.
Debian, Ubuntu y Devuan: en estas distribuciones Courier se compila con GnuTLS en lugar de OpenSSL, y TLS_PROTOCOL no tiene efecto. Establece el límite mínimo del protocolo con TLS_PRIORITY en su lugar, por ejemplo TLS_PRIORITY=NORMAL:-VERS-TLS1.0:-VERS-TLS1.1 (que deja habilitados solo TLS 1.2 y 1.3). El TLS_CERTFILE y el PEM combinado anterior son idénticos en ambas compilaciones, por lo que la instalación del certificado en sí no cambia.
Nota sobre los parámetros Diffie-Hellman: los paquetes actuales de Courier generan automáticamente un archivo de parámetros DH (mediante el script mkdhparams y una tarea cron periódica) y lo leen desde TLS_DHPARAMS, por lo que ya no es necesario crear uno manualmente para una instalación estándar. La antigua directiva TLS_DHCERTFILE se eliminó en Courier 4.15. Si mkdhparams nunca se ha ejecutado en tu servidor, ejecútalo una vez para crear el archivo.
Si también ofreces POP3S (puerto 995), abre el archivo de configuración de POP3, /etc/courier/pop3d-ssl (o /usr/lib/courier-imap/etc/pop3d-ssl), y aplica la misma configuración. Puedes reutilizar el mismo archivo PEM, o crear uno dedicado /etc/courier/pop3d.pem con el mismo contenido:
TLS_CERTFILE=/etc/courier/pop3d.pem
TLS_PROTOCOL=TLSv1.2
TLS_STARTTLS_PROTOCOL=TLSv1.2
Paso 3: Reinicia Courier
Reinicia Courier para que cargue el nuevo certificado. En la mayoría de las distribuciones basadas en systemd, reinicia los servicios SSL y el demonio de autenticación:
sudo systemctl restart courier-imap-ssl
sudo systemctl restart courier-pop3-ssl
sudo systemctl restart courier-authdaemon
Algunos paquetes exponen una única unidad combinada en su lugar. Si los servicios anteriores no se encuentran, intenta:
sudo systemctl restart courier
En un sistema que no usa systemd, reinicia mediante los propios scripts de Courier:
/usr/lib/courier-imap/libexec/imapd-ssl.rc restart
/usr/lib/courier-imap/libexec/pop3d-ssl.rc restart
Una vez que el servicio se reinicia correctamente, tu nuevo certificado SSL está activo para IMAPS (puerto 993) y POP3S (puerto 995), así como para STARTTLS en los puertos 143 y 110.
Prueba tu instalación SSL
Después de la instalación, confirma que el certificado se sirve correctamente. Desde una terminal, abre una conexión TLS al puerto IMAPS y lee el certificado que presenta el servidor:
openssl s_client -connect mail.yourdomain.com:993 -servername mail.yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -subject -dates
Para POP3S, usa el puerto 995. Para probar STARTTLS en el puerto estándar de IMAP en su lugar, ejecuta:
openssl s_client -connect mail.yourdomain.com:143 -starttls imap
El primer comando canaliza la conexión hacia openssl x509 e imprime el emisor, el sujeto (nombre común) y las fechas de validez, para que puedas confirmar que se sirve el certificado correcto. El comando STARTTLS muestra el proceso de negociación completo: verifica que el emisor y la cadena sean correctos y que aparezca Verify return code: 0 (ok) cerca del final. Para obtener un informe completo sobre tu certificado y su configuración, usa nuestro SSL Checker.
Preguntas frecuentes
Primero el certificado del servidor, luego la cadena intermedia (de la CA) y después la clave privada, todo en un único archivo PEM. Courier lee este archivo desde TLS_CERTFILE y presenta la cadena completa a los clientes. La clave privada debe estar sin cifrar (sin frase de contraseña).
IMAP sobre SSL se configura en /etc/courier/imapd-ssl, y POP3 sobre SSL en /etc/courier/pop3d-ssl. En algunas distribuciones estos archivos se encuentran en /usr/lib/courier-imap/etc/ en su lugar. Los ajustes de STARTTLS para los puertos de texto plano están en los archivos imapd y pop3d correspondientes.
No manualmente para una instalación normal. Los paquetes actuales de Courier generan automáticamente un archivo de parámetros DH con el script mkdhparams y lo actualizan periódicamente, leyéndolo desde TLS_DHPARAMS. La antigua directiva TLS_DHCERTFILE se eliminó en Courier 4.15. Ejecuta mkdhparams una sola vez si aún no existe ningún archivo DH.
Elimina cualquier línea TLS_PROTOCOL=SSL3 y configura TLS_PROTOCOL=TLSv1.2 en imapd-ssl y pop3d-ssl. Configura TLS_STARTTLS_PROTOCOL=TLSv1.2 para los puertos STARTTLS. El valor TLSv1.2 significa «1.2 o superior», por lo que TLS 1.3 se usa automáticamente cuando tu OpenSSL lo admite.
Conéctate al puerto de correo con OpenSSL y lee el certificado servido: openssl s_client -connect mail.yourdomain.com:993 para IMAPS, o agrega -starttls imap en el puerto 143. Confirma que el emisor y la cadena sean correctos y que la salida muestre Verify return code: 0 (ok).
Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.
Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10


