Setting up Apache Server with SSL Support on Ubuntu

Configuración del servidor Apache con soporte SSL en Ubuntu

SSL también se conoce como protocolo Secure Socket Layer. Fue creado por Netscape para asegurar transacciones entre servidores web y navegadores. El protocolo SSL utiliza una Autoridad de certificación (CA) para identificar uno o ambos extremos de las transacciones. Todas las comunicaciones enviadas a través de conexiones HTTP regulares están en texto sin formato, y cualquier pirata informático puede acceder a la conexión entre su navegador y el sitio web y leer información confidencial, como detalles de tarjetas de crédito o su número de seguro social. SSL se utiliza para mantener encriptada la información confidencial enviada a través de Internet, de modo que la información se vuelva ilegible para todos.

Certificado Autofirmado vs. Certificado Comercial

Certificado autofirmado está firmado por su dueño. Generalmente se usa para probar servidores locales y entornos de desarrollo. Aunque los certificados autofirmados brindan el mismo nivel de seguridad entre el sitio web y el navegador, la mayoría de los navegadores web siempre mostrarán un mensaje de alerta de seguridad que indica que el certificado del sitio web está autofirmado y no es confiable, ya que no está firmado por la autoridad de certificación.

Certificado Comercial es un certificado autorizado emitido por una autoridad de certificación de confianza. El certificado firmado se utiliza principalmente en un entorno de producción.

En este artículo voy a explicar cómo crear un certificado SSL autofirmado para Apache que le permitirá encriptar el tráfico a su servidor web Apache.

Configurar Apache para admitir SSL

De forma predeterminada, Openssl está instalado en Ubuntu 14.04. Este módulo proporciona soporte SSL para Apache. Está deshabilitado de forma predeterminada, por lo que primero debe habilitar el módulo SSL.

Puede habilitar el módulo SSL ejecutando:

Una vez que haya habilitado SSL, deberá reiniciar el servicio Apache para que se reconozca el cambio.

sudo service apache2 restart

Generar un certificado autofirmado

El primer paso es la creación del certificado. Para fines de prueba, o para LAN pequeñas, debe generar una clave privada (ca.key) con cifrado de 2048 bits.

Para hacer esto, ejecute:

sudo openssl genrsa -out ca.key 2048

Luego genere una solicitud de firma de certificado (ca.csr) usando el siguiente comando:

sudo openssl req -nodes -new -key ca.key -out ca.csr

apache_ssl

Por último, genere un certificado autofirmado (ca.crt) de tipo X509 válido para 365 claves.

sudo openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

Cree un directorio para colocar los archivos de certificado que hemos creado.

sudo mkdir /etc/apache2/ssl

A continuación, copie todos los archivos de certificado en el directorio «/etc/apache2/ssl».

sudo cp ca.crt ca.key ca.csr /etc/apache2/ssl/

Configure Apache para usar el certificado SSL:

Ahora todos los certificados están listos. Lo siguiente que debe hacer es configurar Apache para mostrar el nuevo certificado.

Para esto, debe habilitar la compatibilidad con SSL en el archivo de host virtual predeterminado de Apache ubicado en el /etc/apache2/sites-enable/ directorio.

Puede hacerlo editando el archivo de configuración del host virtual predeterminado de Apache.

sudo nano /etc/apache2/sites-enable/000-default.conf

Comente todas las líneas agregando un «#» delante de cada línea y agregue las siguientes líneas:

<VirtualHost *:443>
                ServerAdmin webmaster@localhost
                DocumentRoot /var/www/html
                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined
                SSLEngine on
                SSLCertificateFile /etc/apache2/ssl/ca.crt
                SSLCertificateKeyFile /etc/apache2/ssl/ca.key
</VirtualHost>

Guarde y cierre el archivo, luego reinicie Apache.

sudo /etc/init.d/apache2 restart

Esto debería habilitar su nuevo host virtual que servirá contenido encriptado utilizando el certificado SSL que creó.

Prueba del servidor Apache (HTTPS):

Para verificar el servidor web Apache (HTTPS), abra su navegador web y escriba la dirección IP de su servidor (con «https://», por ejemplo: «https://192.168.1.227»).

Debería aparecer un error en su navegador y debe aceptar manualmente el certificado. El mensaje de error aparece porque estamos usando un certificado autofirmado en lugar de un certificado firmado por una autoridad de certificación en la que confía el navegador, y el navegador no puede verificar la identidad del servidor al que intenta conectarse. Una vez que agregue una excepción a la verificación de identidad del navegador, debería ver una página de prueba de Ubuntu para su nuevo sitio seguro.

apache_ssl_warning

apache_ssl_test_page

Conclusión

Ahora, tiene habilitado SSL en su servidor Apache. Esto ayudará a asegurar la comunicación entre su servidor Apache y los clientes. Si desea alojar un sitio público con soporte SSL, debe comprar un certificado SSL de una autoridad de certificación confiable.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Experto Geek - Tu Guía en Tendencias Tecnológicas