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 SSLCertificateFile y SSLCertificateKeyFile 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: