SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
MANUAL DE INSTALACIÓN DE UN SERVIDOR APACHE CON SSL. INSTALAICON DEL SERVIDOR DNS Primero empezaremos instalando un servidor DNS, para que nos pueda resolver el nombre de URL de la página web que va a tener el Servidor Apache. Para instalar el servidor DNS o más bien BIND9 de los repositorios de debían ejecutamos el siguiente comando. #apt-get install bind9 Luego de instalar, agregamos el nombre de nuestro dominio y la dirección IP (DOMINIO=sergio.com IP=192.168.0.5), en le siguiente archivo de configuración. #nano /etc/resolv.conf
Luego vamos al archivo de configuración named.conf, donde definiremos el nombre de la zona directa e inversa, que resolverán de IP a nombre y de nombre a IP y las rutas donde estarán alojadas. #nano /etc/bind/named.conf
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Ahora crearemos el fichero de la zona directa y deberá tener un contenido similar como el siguiente. #touch /etc/bind/directa.zona
Igualmente crearemos el fichero de la zona inversa y deberá tener un contenido similar como el siguiente. #touch /etc/bind/inversa.zona
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Luego de configurar del DNS o BIND, reiniciaremos el servidor y haremos las pruebas de resolución inversa y directa para comprobar que el servidor este bien configurado.
INSTALACION DEL SERVIDOR WEB. Para instalar el servidor web, o mejor dicho APACHE2 ejecutamos el siguiente comando. #apt-get install apache2
Luego de instalar, vamos al siguiente archivo de configuración para definir la ruta del directorio que va ha tener alojada la pagina que va a carga el servidor web. Y el nombre de URL de nuestra pagina web. Vamos #nano /etc/apache2/sites-available/default Debe tener un aspecto como el siguiente.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Como podemos observar se encuentra alojada la pagina “index.html” en el directorio que hemos definido anteriormente. Y reiniciamos el servidor Apache2 para que actualice todos lo cambios que hemos hecho en el, y para comprobar que si haya sido bien configurado.
Ahora vamos a nuestro navegador web “Iceweasel” y comprobaremos que nuestra pagina web este en funcionamiento. Copiamos la URL “debían.sergio.com” y como podemos observar a resulto de nombre a IP y a cargado la pagina del servidor web con éxito.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
INSTALACION DEL SERVICIO OPENSSL Primero verificamos la versión de openssl. Con el siguiente comando.
Ahora crearemos un directorio de trabajo para mayor organización, con el nombre “CA” o podemos definir el nombre que deseemos. Y dentro de este mismo crearemos dos directorios más con los nombres de “certificados” y “privado”. En el directorio “certificados” se guardara una copia de cada certificado que firmemos y en el otro directorio “privada” se guardara nuestra llave privada.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Luego crearemos dos archivos que en conjunto formaran la base de datos de los certificados autofirmados. En el archivo “serial” simplemente contiene el siguiente numero de serie de nuestro certificados, ya que apenas vamos a crear el primer numero de serie, será 01, después de crearlo se actualizara a 02 y así sucesivamente.
Después crearemos un archivo en nuestro directorio “CA” con el nombre de “openssl.cnf” que va a tener la siguiente configuración. # ***** openssl.cnf ****** dir
=.
# Variable que establece el directorio de trabajo
# seccion que permite convertirnos en una CA # solo se hace referencia a otra sección CA_default [ ca ] default_ca = CA_default [ CA_default ] serial = $dir/serial # archivo que guarda el siguiente número de serie database = $dir/index.txt # archivo que guarda la bd de certificados new_certs_dir = $dir/certificados # directorio que guarda los certificados generados certificate = $dir/cacert.pem # nombre del archivo del certificado raíz private_key = $dir/privado/cakey.pem # llave privada del certificado raíz default_md = md5 # algoritmo de dispersión usado preserve = no # Indica si se preserva o no el orden de los # Campos del DN cuando se pasa a los certs. nameopt = default_ca # esta opción y la siguiente permiten mostrar # detalles del certificado certopt = default_ca policy = policy_match # indica el nombre de la seccion donde se especifica
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575 # que campos son obligatorios, opcionales y cuales # deben ser iguales al certificado raíz. # seccion de politicas para la emision de certificados [ policy_match ] countryName = match # match, obligatorio stateOrProvinceName = match organizationName = match organizationalUnitName = optional # optional, campo opcional commonName = supplied # supplied, debe estar en la petición emailAddress = optional # Seccion que indica como los certificados deben ser creados [ req ] default_bits = 1024 # tamaño de la llave, si no se indica 512 default_keyfile = key.pem # nombre de la llave privada default_md = md5 # algoritmo de dispersión a utilizar string_mask = nombstr # caracteres permitidos en la mascara de la llave distinguished_name = req_distinguished_name # seccion para el nombre distinguido req_extensions = v3_req # seccion con mas extensiones que se añaden a la # peticion del certificado # Seccion del nombre distinguido, el valor es el prompt que se vera en pantalla. # Datos del propietario del certificado. # Esta seccion define el contenido de datos de id que el certificado llevara. [ req_distinguished_name ] 0.organizationName = Nombre de la organizacion 0.organizationName_default = Redsergio organizationalUnitName = Departamento o division emailAddress = Correo electronico emailAddress_max = 40 localityName = Ciudad o distrito localityName_default = Medellin stateOrProvinceName = Estado o provincia stateOrProvinceName_default = Antioquia countryName = Codigo del pais (dos letras) countryName_default = CO countryName_min =2 countryName_max =2 commonName = Nombre comun (hostname o IP) commonName_max = 64 # Si en la linea de comandos se indica la opcion -x509, # las siguientes extensiones tambien aplican
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575 [ v3_ca ] # indica que se trata de un certificado CA raíz con autoridad para # firmar o revocar otros certificados basicConstraints = CA:TRUE # Especifica bajo que metodo identificar a la llave publica que sera certificada subjectKeyIdentifier = hash # Especifica como identificar la llave publica authorityKeyIdentifier = keyid:always,issuer:always # Extensiones de la opcion req [ v3_req ] basicConstraints = CA:FALSE subjectKeyIdentifier = hash
# los certificados firmados no son CA
Hasta ahora, el directorio “CA” que hemos creado debe tener lo siguiente.
CREACION DEL CERTIFICADO RAIZ Ya estamos listos para crear nuestro certificado raíz, recordemos que este certificado nos convertirá en una Autoridad Certificadora. Así que cuando emitamos el siguiente comando nos solicitara una contraseña “pass phrase”, el cual recomiendo que sea una contraseña de almenos 20 caracteres, alfanuméricos, simbolos y rotaciones entre mayúsculas y minúsculas. Algunas opciones a utilizar para crear el certificado raíz. -Req -new -x509 -extensions v3 ca -keyout
= Crear un certificado nuevo autofirmado. = Crear un certificado raíz CA = Nombre y donde guardara la llave privada
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
-out -days 365 -config
= Nombre del certificado raíz CA = El certificado sera valido por 365 días (1 año) = Archivo de configuración a utilizar
Y por ultimo nos preguntara unos datos para crear el certificado raíz. Los llenamos respectivamente con nuestros datos.
Con el comando realizado anteriormente, nos generara dos archivos nuevos. -cacert.pem = Que es el certificado raíz que nos creo. -cakey.pem = Es nuestra llave privada, la cual va ha esta almacenada en /etc/CA/privada/cakey.pem el cual se podría enviar a nuestros clientes o usuarios del sistema y estos lo instalen en su navegador web. Con los siguientes comandos, podemos ver como lucen estos archivos. Certificado.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Llave privada.
Con el siguiente comando podemos ver la fecha de creación y finalización del certificado raíz.
Tambien podemos ver información acerca del certificado raíz. Con el siguientes comandos.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
SOLICITUD DE FIRMADO DE CERTIFICADO (CSR CERTIFICATE SIGNING REQUEST) Ahora deberemos crear una solicitud de firmado de certificado, Pues ya que ahora estamos validados como CA con el certificado raíz. Además crearemos una llave privada y firmaremos la solicitud para generar un certificado autofirmado. El comando es muy parecido al anterior pero esta vez no nos pedirá contraseña, pero si se creara una llave privada para la solicitud. Y nos volverá a pedir los datos necesarios, que deberán ser de conformidad a las políticas del archivo de configuración “openssl.cnf”, y lo mas importante es que el CN sea igual en este paso como en el anterior. Es decir, debia.sergio.com Especifiquemos los parámetros usados aquí - req de request en ingles, solicitando un certificado nuevo. - out es el nombre del certificado que deseamos firmar. - config sirve para especificar el archivo de configuración a usar. - nodes sirve para especificar que no deseamos contraseña en la llave privada de la solicitud.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Ahora firmaremos la solicitud anterior. Para esto deberemos indicar la contraseña que tecleamos en el paso de la creación del certificado raíz, que nos señala como una autentica CA, y que por tal tenemos la autoridad de firmar certificados. -Nos preguntara si deseamos firmar el certificado, a lo que responderemos que si. - Nos preguntara si accedemos a almacenarlo en la base de datos, a lo que responderemos que si.}
Parámetros usados en este pasó: -out será el archivo “certificado-redes.pem”. -config usara las opciones del archivo de configuración dado “openssl.cnf”. -infiles será la solicitud de firmado tomando datos del archivo creado anteriormente “redes-cert.pem”
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Se comprueba que ya aumento el número de serie a 02, es decir, el siguiente certificado que firmemos será ese número. En el archivo index.txt el tercer campo indica 01, que es el número de serie para el certificado recién creado y muestra también los campos del DN. En el directorio de certificados se guarda también con el correspondiente número de serie (01.pem) un archivo que complementa la base de datos de certificados que podemos ir creando. Y por último tenemos el certificado en si:
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Luego copiamos nuestros dos archivos en un directorio, de hecho podrían quedarse donde están, es lo de menos, pero por cuestión de orden y organización vamos a copiarlos a /etc/apache2/ que en la mayoría de distribuciones es el directorio de configuración del Apache.
Ahora, lo que haremos será configurar el servidor Apache con la intención de darle seguridad a través de SSL. Agregamos en el archivo nano /etc/apache2/sites-available/default La línea “RedirectPermanent / https://debian.sergio.com” para que nos re direccione Y al final de la configuración las siguientes líneas, Ahora, solo deberemos agregar en
para que escuche por todas las interfaces a través del puerto 443 (ssl). Añadirle el “ServerAdmin [email protected]”; el cual es el correo donde deben reportarse los problemas. “ServerName debían.sergio.com”. Mi servidor web. “DocumentRoot /var/www/web/”. El directorio donde se halla mi sitio web.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Antes de terminar el archivo de configuración añadiremos estas líneas para implementar el SSL. “SSLEngine on” es encender el motor de SSL. “SSLcertificateFile” la ruta donde se almacena nuestro certificado firmado. (/etc/apache2/certificado-Redsergio.pem). “SSLCertificateKeyFile” la ruta donde se almacena la llave privada. (/etc/apache/key.pem). El archivo de configuración debe quedar de la siguiente manera.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Luego agregamos la siguiente línea en el archivo de configuración “nano /etc/apache2/ports.cnf” para que escuche por el puerto seguro. Listen 443 Ahora deberemos cargar el modulo SSL para establecer que el Apache sea seguro, mediante el comando “a2enmod”, lo logramos. Y le daremos “ssl”. El mismo nos pedirá que forcemos el inicio de Apache2, por lo que reiniciamos el servidor Apache2.
Ahora haremos la prueba desde nuestra maquina local Vamos a nuestro navegador web y copiamos “http://debian.sergio.com” y nos aparecerá una advertencia de restricción. Pero nos aparece una opción de que podemos hacer una excepción damos clic en “Or you can ad dan exception”
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Nos aparece un aviso de certificado, damos clic en “View”.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Luego nos aparecen detalles de certificado.
Y por ultimo nos re direcciona a “https://debian.sergio.com” que es nuestra pagina web que hemos instalado en nuestro servidor Apache.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
PRUEBAS DESDE UN CLIENTE WINDOWS Primero en la interfaz de red del cliente, añadiremos la dirección IP de nuestro SERVIDOR DNS. Luego vamos a nuestro navegador Web y copiamos la dirección de nuestra pagina web “debían.sergio.com” primero nos mostrara una alerta de seguridad, que seria el certifico de la pagina web, damos en la opción “Ver certificado”.
Como podemos apreciar nos muestra el certificado que hemos creado para este sitio. Le damos en la opción instalar certificado.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Nos abre el asistente para la importación de certificados, damos siguiente.
Luego podemos seleccionar la ruta o de jamos la que viene por defecto para la almacenar el certificado, damos siguiente.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Luego damos clic en finalizar la importación de certificado.
Nos mostrara un aviso diciéndonos que la importación se ha realizado correctamente.
SERGIO ALEXIS CANO SEPULVEDA ADMINISTRACION DE REDES DE COMPUTADORES GRUPO 941575
Y por ultimo nos re direccionará de forma segura, “https://debian.sergio.com” a nuestra pagina web que hemos montado en el servidor Apache.