¿Cómo instalar un certificado SSL con Apache y Linux?

En este artículo explicamos cómo realizar la instalación del certificado SSL y/o del certificado de la autoridad certificadora (CA) en nuestro servidor web Apache 2.x.

Una vez hemos comprado el certificado SSL y se ha realizado el proceso de validación correspondiente por parte de la Autoridad Certificadora (CA) que lo emite, esta nos envía el certificado SSL ya validado. Se suele enviar en forma de unos ficheros adjuntos, o también como texto que debemos separar y colocar en los ficheros .crt adecuados siguiendo las instrucciones de nuestro proveedor.

En nuestro caso en NESSYS IT proporcionamos ya los ficheros de los certificados correctamente formateados, por lo que vamos a partir de la base de que ya disponemos de los ficheros y queremos instalarlos en nuestro servidor web.

 

Disponemos de los siguientes ficheros:

www.dominio.com.key - es el fichero con la Llave Privada que se ha usado para este certificado. Es privado y sólo Apache debe de tener acceso, NO debe de ser públicamente accesible.
www.dominio.com.crt - es el fichero con el Certificado SSL que queremos instalar en nuestro servidor web.
ProveedorSSL-ca.crt - es el fichero con el certificado de la autoridad certificadora (CA) que ha firmado el certificado.

Nuestra finalidad es permitir a través del certificado SSL el uso de conexiones seguras HTTPS entre nuestro servidor, así como identificar de forma confiable nuestro servidor ante nuestros clientes.

Primera Parte - Instalación del certificado

Esta parte consiste básicamente en copiar los ficheros en las localizaciones adecuadas del servidor, de forma que sean correctamente accesibles por Apache y tengan los permisos adecuados para evitar cualquier tipo de problema de seguridad.

En el caso de Apache y Linux el cómo realizar correctamente esta operación depende completamente de la distribución utilizada, diferenciaremos dos grandes famílias: las distribuciones basadas en Debian/Ubuntu y las distribuciones basadas en RedHat/CentOS. En este caso nos vamos a centrar en las localizaciones para Ubuntu Linux, si bien estas no debieran ser muy diferentes del resto. Por favor, consulte la documentación de su distribución de Linux en caso de duda o de no tener claro dónde colocar los ficheros en su caso específico si su configuración difiere de la utilizada aquí.

En nuestro caso para Ubuntu Linux los pasos a seguir son:


1. Copiar los ficheros que nosotros como proveedor proporcionamos al servidor web

En la imagen podemos ver un ejemplo de como han de quedar los ficheros

 

Copia de los ficheros CRT y KEY en la home del usuario


Cómo realicemos la copia de los archivos es indiferente, podemos utilizar cualquier método que conozcamos: FTP, SFTP, CP, NFS, SMB... cualquier método que conozcamos nos vale con tal de que los ficheros queden en la carpeta home del usuario que estemos usando (y que tenga permisos suficientes para seguir con el resto de operaciones). Para facilitar la operación los copiaremos a nuestra carpeta home que habitualmente corresponde con /home/usuario (o bien /root si somos el administrador de la máquina, como en nuestro ejemplo).

 

2. "Instalar" los ficheros del Certificado SSL

Una vez tenemos los ficheros en la maquina la "instalación" de los mismos es muy sencilla y simplemente supone que debemos colocar dichos ficheros (o una copia de ellos) en la localización adecuada donde Apache los pueda encontrar y usar, y donde estén protegidos y con los permisos adecuados al uso que se le va a dar a cada uno de ellos.

En el caso de Ubuntu y similares, la configuración adecuada (en nuestro ejemplo usamos Ubuntu 10.04 LTS) es esta:

 

- Copiamos www.dominio.com.key en /etc/ssl/private
- Copiamos www.dominio.com.crt en /etc/ssl/certs
- Copiamos ProveedorSSL-ca.crt en /etc/ssl/certs

 

Segunda Parte - Configurar Apache para que utilice el nuevo certificado

Para que Apache pueda utilizar dichos ficheros es necesario pero no suficiente que los copiemos, hay que realizar modificaciones en los ficheros de configuración de Apache que le indiquen qué ficheros a de usar.

Tanto si estamos instalando el certificado en un sitio web que no disponía de HTTPS/SSL como si es una web ya funcionando en la que estamos renovando el certificado, los conceptos básicos a entender son los mismos.

A continuación se muestra un ejemplo muy simple de un host virtual configurado para SSL. Las partes en negrita son las partes específicas para la configuración particular de cada cliente/certificado:


VirtualHost 192.168.0.1:443
DocumentRoot /var/www/web1
ServerName www.dominio.com
SSLEngine on
SSLCertificateFile /ruta/al/fichero/www.dominio.com.crt
SSLCertificateKeyFile /ruta/al/fichero/www.dominio.com.key
SSLCertificateChainFile /ruta/al/fichero/ProveedorSSL-ca.crt


Los temas que hay que revisar son

:443 -> puerto estándar para SSL
SSLEngine on -> mod_ssl debe estar configurado y activado en Apache


Después, tan solo queda ajustar los nombres de archivo para que coincidan con los archivos de certificado que hemos recibido:

SSLCertificateFile debe ser el archivo del certificado (por ejemplo, www.dominio.com.crt).
SSLCertificateKeyFile debe ser el archivo de clave privada (por ejemplo, www.dominio.com.key).
SSLCertificateChainFile debe ser el archivo de la CA intermedia (por ejemplo RapidSSL-ca.crt).
* nota: Si la directiva SSLCertificateChainFile no funciona, pruebe a usar la directiva SSLCACertificateFile ruta/al/fichero/.


Recuerde: "/ruta/al/fichero/" debe adaptarse también, corresponde a /etc/ssl/private para el .key y /etc/ssl/certs para los demás tal y como las hemos definido antes en nuestro ejemplo.

 

Ponga a prueba su configuración de Apache antes de reiniciar

Siempre es mejor para ver sus archivos de configuración de Apache de los errores antes de reiniciar, ya que si hay algún problema ó si los archivos de configuración tienen errores de sintaxis Apache no se iniciara.


Ejecute el siguiente comando:

apache2ctl configtest (corresponde a apachectl en algunos sistemas)

Si todo está bien debería ver algo como:
root@server1:~# apache2ctl configtest
Syntax OK


Si no ve lo anterior y aparecen errores por favor asegúrese de corregirlos antes de reiniciar Apache.


Reinicie y compruebe su instalación

Una vez la configuración sea correcta y este todo en su sitio puede reiniciar el servidor web y comprobar los resultados.


Abra su navegador web, introduzca la dirección de su sitio web y mire los resultados de la conexión en su navegador. Compruebe que el navegador detecta correctamente el certificado y verifique los detalles del certificado para asegurarse de que son correctos.

 

 

Cómo contratar el servicio de Instalación

Si por el motivo que sea usted prefiere que nosotros le instalemos el certificado SSL que acaba de comprar en NESSYS IT le ofrecemos el servicio de instalación (setup) del certificado como un complemento disponible anexo a la emisión del propio certificado. Por favor añada el servicio de instalación como complemento adicional en el momento de la compra de su certificado o posteriormente desde su Area de Cliente > Productos/Servicios > Certificado SSL (ver detalles) > Complementos [Pedir Ahora]

 

 

Comprar Certificado SSL

  • 2 Los Usuarios han Encontrado Esto Útil
¿Fue útil la respuesta?

Related Articles

¿Cómo es el proceso de validación?

El proceso de validación se realiza por la CA (Autoridad de Certificación), tales como Symantec y...