Configuración de servicio web con SSL en Ubuntu 14.04

En el presente post realizaremos la integración del servicio web apache2 con los certificado auto firmado generados por openssl bajo el sistema operativo Ubuntu 14.04. Los requerimientos son los siguientes:

Instalar los siguientes paquetes:

aptitude install gcc make apache2

Luego de esto se valida la instalación de openssl, en nuestro se caso se verificó la versión y se verificó que esta presenta la vulnerabilidad de HeartBleed, según lo observado en la pagina anexa en información de interés, por tal motivo se realizó la compilación de openssl en la versión 1.0.2g, descargada desde la pagina oficial.

Para ello se deben ejecutar los siguientes comandos:

gunzip openssl-1.0.2g.tar.gz

tar -xvf openssl-1.0.2g.tar

cd openssl-1.0.2g

./config –perfix=/usr/local/openssl-1.0.2g

Al terminar esto ya tendríamos en nuestro sistema operativo la compilación de openssl libre del bug y así poder trabajar con tranquilidad, para generar la key y cert requeridos por apache para poder soportar el protocolo https, se realiza lo siguiente:

Creamos directorio donde se alojaran los certificados:

mkdir -p /usr/local/cert/

Creamos los certificamos usando los binarios de la instalación openssl compilada ubicados en la ruta /usr/local/openssl-1.0.2g/bin/openssl:

cd /usr/local/cert/

openssl genrsa -des3 -passout pass:x -out server.pass.key 2048

openssl rsa -passin pass:x -in server.pass.key -out server.key

rm server.pass.key

openssl req -new -key server.key -out server.csr

Al ejecutar el ultimo comando el sistema nos solicitará ingresar la información de Country Name, State or Province Name, etc.

Luego de esto realizamos a activación del modulo de ssl de apache ejecutando el comando:

a2enmod ssl

y reiniciamos el servicio web

/etc/init.d/apache2 restart

Para finalizar realizamos la configuración del site llamando default-ssl.conf ubicado en la ruta /etc/apache2/sites-available, en donde se cambiarán los parámetros SSLCertificateFileSSLCertificateKeyFile por los respectivos archivos key y cert que generamos anteriormente:

vi /etc/apache2/sites-available/default-ssl.conf 

SSLCertificateFile /usr/local/cert/server.csr

SSLCertificateFile /usr/local/cert/server.csr

Habilitamos el site ssl 

a2ensite default-ssl

Recargamos la configuración de apache2

/etc/init.d/apache2 reload

Luego ingresamos por el navegador web https://FQDN o https://IP del servidor para validar el ingreso al sitio.

Información de interés:

http://heartbleed.com/

https://devcenter.heroku.com/articles/ssl-certificate-self

https://www.openssl.org/

Deja un comentario