Pasos para configurar el Servidor Web Apache2 de forma segura o con SSL.
Fase de configuración e instalación de paquetes:
1.-Descargar de la página (httpd:www.openssl.org/source/)de hay descargar el paquete comprimido "openssl-0.9.81", tambien directamente desde la terminal ingresando este comando:
apt-get openssl-0.9.81
2.-Descomprimir este paquete ya sea con click derecho en la opción (extraer aquí) ó desde la terminal con el comando:
tar xvzf openssl-0.9.81.tar.gz
3.-Una ves descomprimido este paquete lo copiaran en /usr, manualmente o desde la terminal con cp sintaxis: cp origen destino
4.-Nos cambiamos a esa carpeta ingresando en la terminal este comando:
cd /usr/openssl-0.9.81
6.-Para la pre-instalación, ingrese en la terminal este comando:
./config –prefix=/usr/local/apache2/ssl/install –openssldir=/usr/local/ssl/install/openssl
7.-Para compilar ingrese en la terminal este comando:
make
8.-Para compilar e instalar ingrese en la terminal este comando:
sudo make install
9.-Ahora para añadir a el Servidor Web Apache2 en openssl, ingrese en la terminal este comando:
./configure --prefix=/etc/apache2/ --enable-ssl –with-ssl=/usr/local/ssl/install/openssl
10.-Para compilar ingrese en la terminal este comando:
make
11.-Para compilar e instalar ingrese en la terminal este comando:
sudo make install
Paso de creación del Par de llaves(KEY):
1.-Para general el par de llaves ingrese en la terminal este comando:
sudo /usr/local/ssl/install/bin/openssl genrsa –des3 –rand file1:file2:file3 –out (nombre de mi llave).key 1024
Especificaciones:
-genrsa: Indica a openssl que queremos generar el par de llaves
-rand: Se utiliza para proveer a openssl con datos aleatorios y así generar llaves que son únicas e impredecibles
-file1:file:2file3: Son sustituidos por archivos relativamente al azar para este propósito.
-out: Indica donde se guardara el resultado.
-1024: Indica el número de bits para la generación de las llaves.
2.-Al hacer este comando recibiremos una petición como esta:
*Enter PEM pass phrase:
3.-Escribimos la frase secreta para nuestra llave y nos responderá
*Verifying password – Enter PEM pass phrase:
Ya tenemos nuestro par de llaves nos falta generar el Certificado, para generar un certificado publico de una Autoridad Certificadora debemos enviar algo que es llamado: certificate signing request.
Paso para los requisitos del certificado(CRT):
1.-Para hacer esto ingrese en la terminal este comando:
./usr/local/ssl/install/bin/openssl req –new –key (nombre de mi llave).key –out (nombre de mi petición).csr
2.-Al hacer este comando nos mostrara algo como esto:
-Enter PEM pass phrase:
-Country Name (2 letter code) [AU]:MX
-State or Province Name (full name) [Some-State]:DF
-Locality Name (eg, city) []: DF
-Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
-Organizational Unit Name (eg, section) []:.
-Common Name (eg, YOUR name) []:www.mygnet.com
-Email Address []:administrator@mygnet.com
-Please enter the following 'extra' attributes to be sent with your certificate request
-A challenge password []: enter
-An optional company name []: enter
3.-Ahora el certificado esta guardado en (nombre de mi petición).csr
Prosiguiremos a crear un Certificado firmado por si mismo esto significa que podemos ser tanto el destinatario como el usuario del certificado.
Paso para crear un Certificado firmado:
1.-Para hacer esto ingrese en la terminal este comando:
./usr/local/ssl/install/bin/openssl x509 –req –days 365 –in (nombre de mi petición).csr –signkey (nombre de mi llave).key –out (nombre de mi certificado).crt
2.-Creen una carpeta dentro de esta dirección /usr/local/ssl/install/openssl/(nombre de mi carpeta), con mkdir (nombre de mi carpeta), dentro de esta carpeta copiaremos la llave y el certificado.
¡Recuerden si lo quieren hacer desde desde la terminal con cp sintaxis: cp origen destino!
3.-Si bien lo prefieren tambien puede ser así:
-Copiar (nombre de mi certificado).crt a:
-/usr/local/ssl/install/openssl/certs/
-y tambien debemos copiar (nombre de mi llave).key a:
-/usr/local/ssl/install/openssl/private/
Pasos para la configuracion de SSL y Apache2:
1.-Buscar en esta dirección /usr/local/apache2/conf/, el archivo httpd.conf.
2.-Situados en esta dirección, para modificar el httpd.conf desde la terminal ingresa este comando:
sudo nano httpd.conf
3.-Modifica el httpd.conf para generar esto:
Listen 80
Listen 443
ServerName (nombre de mi página)
SSLEngine on
SSLCertificateFile
/usr/local/ssl/install/openssl/certs/(nombre de mi certificado).crt
SSLCertificateKeyFile
/usr/local/ssl/install/openssl/private/(nombre de mi llave).key
-Guarda Ctrl+O
-Cierra Ctrl+X
Con la configuración anterior levantamos un virtualhost que estará escuchando por el puerto 443 (que es el default para el HTTPS) y habilitamos el SSL en el virtualhost con la directiva SSLEngine.
Paso para encender su Servidor Web Apache2 con SSL:
1.-Encienda su Servidor Web Apache2 con SSL ingresando en la terminal este comando:
sudo /usr/local/apache2/bin/apachectl start ó
sudo /usr/local/apache2/bin/apachectl startssl
2.-Nos pedira que escribamos nuestra : pass phrase, hecho esto ya tenemos nuestro servidor Apache2 con SSL.
3.-Para comprobar que este encendido vaya al explorador Mozila Firefox e ingrese en la barra de direcciones (https://localhost), si aparece la frase "Its Works"; esta correctamente instalado y encendido su Servidor Web Apache2 con SSL.
4.-Para apagar el Servidor Web Apache2 con SSL ingrese en la terminal este comando:
sudo /usr/local/apache2/bin/apachectl stop ó
sudo /usr/local/apache2/bin/apachectl stopssl