1. IES Gran Capitán
Módulo: Despliegue de Aplicaciones Web
Ciclo Formativo de Grado Superior “Desarrollo de aplicaciones Web”
Práctica 6: Servidor Web Seguro
Fecha entrega: 13/11/2013
Autores: Pablo Medina Suárez
IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://informatica.iesgrancapitan.org informatica@iesgrancapitan.org
2. Práctica 6: Servidor Web Seguro
2
1 ÍNDICE
1
ÍNDICE
2
2
INTRODUCCIÓN
3
3
DESARROLLO DE LA PRÁCTICA
4
3.1
3.2
DESCRIBE CON TUS PALABRAS: ¿QUÉ ES UN SERVIDOR WEB SEGURO?
4
SIGUE LOS PASOS DEL CURSO PARA CONSEGUIR ACCEDER TAMBIÉN EN MODO SEGURO (HTTPS)
A TU PÁGINA WEB DE PRUEBA.
4
3.2.1 HACER LA PRUEBA CON EL MISMO SERVIDOR WEB VIRTUAL PERO ACCEDIENDO POR PUERTOS
DISTINTOS. SI ESTÁ BIEN CONFIGURADO, DEBEN MOSTRARSE INDEX.HTML DISTINTOS.
8
3.2.2 ACCEDER A SERVIDOR WEB QUE SOLO ESTE CONFIGURADO EN MODO SEGURO (LISTEN 443). DEBE
FUNCIONAR USANDO HTTPS Y NO FUNCIONAR USANDO HTTP.
8
4
CONCLUSIÓN
5
BIBLIOGRAFIA
IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
9
10
3. Práctica 6: Servidor Web Seguro
2
3
INTRODUCCIÓN
Objetivo: Crear servidores web seguros.
Procedimiento:
Será necesario que los servicios DHCP y DNS configurados en las prácticas
anteriores
están
levantados.
Nota: si aún no tienes configurado el servicio DNS, usa el fichero de hosts
http://es.wikipedia.org/wiki/Archivo_hosts
IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
4. Práctica 6: Servidor Web Seguro
4
3 DESARROLLO DE LA PRÁCTICA
3.1
Describe con tus palabras: ¿qué es un servidor web seguro?
Un servidor web seguro es aquel servidor cuyas transacciones con los clientes pasan por
una capa más durante el proceso de comunicación, mediante la implementación de protocolos
de seguridad, como el protocolo SSL, que utilizan técnicas de cifrado y autenticación para
impedir que un tercero pueda tener acceso a la información enviada, y evitar las escuchas de las
comunicaciones.
De esta forma, se aumenta la confidencialidad y la fiabilidad de las transacciones de los
usuarios con el servidor web.
Aquellos servidores que utilizan SSL son accedidos utilizando el protocolo HTTPS y
se comunidad por el puerto 443.
3.2
Sigue los pasos del curso para conseguir acceder también en modo
seguro (HTTPS) a tu página web de prueba.
Es necesario realizar algunos preparativos previos para la realización de ésta práctica.
Que son los siguientes:
En primer lugar, hay que crear el sitio nuevo que será configurado como seguro, por lo
que se ha creado un nuevo directorio, /var/www/practica6.
Para la configuración del sitio, esta vez usaremos como archivo base una copia del
fichero /etc/apache2/sites-available/default-ssl, el cual configuramos como ya se ha hecho con
los sitios de anteriores prácticas. Al directorio se le añade la directiva SSLRequireSSL:
Nótese que más abajo la directiva SSLEngine está activada:
IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
5. Práctica 6: Servidor Web Seguro
5
Como no tengo habilitado un servidor DNS, se modifica también el archivo /etc/host,
para poder acceder al sitio utilizando la dirección que le hemos dado.
El siguiente paso a realizar es la configuración del archivo ports.conf, para que escuche
las conexiones realizadas a través del puerto 443. Lo dejamos de la siguiente manera:
Hecho lo anterior, activamos el sitio y reiniciamos el servidor.
Ahora tenemos que instalar un paquete clave si queremos hacer un servidor seguro:
OpenSSL, para ello, se inserta la orden sudo apt-get install openssl. En mi caso, ya lo había
instalado previamente.
Si queremos realizar alguna configuración, hay que utilizar el archivo
/etc/ssl/openssl.cnf, aunque podemos continuar sin modificarlo. La información que aparezca en
dicho archivo estará relacionada con los datos que proveeremos como entidad certificadora, ya
que a continuación generaremos un certificado.
Para la creación de un certificado autofirmado, realizamos lo siguiente:
Introducimos en el terminal la orden sudo make-ssl-cert /usr/share/sslcert/ssleay.cnf /etc/ssl/certs/apache2.pem template output –forcé-overwrite:
Al hacer esto, nos sale la siguiente ventana:
IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
6. Práctica 6: Servidor Web Seguro
6
Dejamos tanto esta como la siguiente con los valores por defecto. En concreto,
en la segunda ventana, no debemos poner ningún nombre, en caso de que salga
alguno.
Hecho esto, vamos al archivo de configuración de nuestro sitio y buscamos las líneas
SSLCertificateFile y SSLCertificateKeyFile, a las cuales añadimos la ruta del certificado que
hemos generado antes. De la siguiente manera:
El último y esencial paso es activar el módulo ssl de apache si no lo hemos hecho, con
la orden sudo a2enmod ssl, tras lo cual reiniciamos el servidor.
Ahora comprobamos si todo lo que hemos hecho ha funcionado, por lo que abrimos el
navegador en una máquina cliente. Primero se prueba a entrar utilizando el puerto estándar:
Comprobamos a acceder por HTTPS:
IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
7. Práctica 6: Servidor Web Seguro
7
Al intentar acceder, recibimos la siguiente advertencia. Esto es debido a que el
navegador no reconoce el certificado obtenido de la página web, ya que el certificado lo hemos
creado nosotros, y por lo tanto no es de confianza.
Para continuar, añadimos una excepción al navegador y ya podremos entrar al sitio:
Ya hemos comprobado que funciona correctamente, sin embargo, no es deseable que se
pueda entrar al sitio si no es de forma segura, por lo que si el usuario intenta acceder utilizando
el puerto estándar, le debemos redirigir al sitio por HTTPS. Para ello, modificamos el archivo
de configuración de la siguiente manera:
Ahora, si se intenta acceder utilizando el puerto 80, se redirecciona automáticamente a
la dirección utilizando el puerto 443.
IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
8. Práctica 6: Servidor Web Seguro
8
3.2.1 Hacer la prueba con el mismo servidor web virtual pero accediendo por
puertos distintos. Si está bien configurado, deben mostrarse index.html
distintos.
Si no se realiza la modificación hecha al final del punto anterior, es decir, en el archivo
de configuración sólo existe un VirtualHost *:443, cuando se intenta acceder utilizando la
dirección por el puerto estándar se muestra un índice distinto:
Sin embargo, si se utiliza https sí que aparece el índice creado para el sitio seguro.
3.2.2 Acceder a servidor web que solo este configurado en modo seguro
(Listen 443). Debe funcionar usando HTTPS y no funcionar usando
HTTP.
Realizado al final del punto 3.2.
IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
9. Práctica 6: Servidor Web Seguro
9
4 CONCLUSIÓN
Durante el desarrollo de esta práctica he aprendido a crear y configurar todo lo
necesario para desplegar un servidor web que se comunique con los usuarios de forma segura.
Además de aprender sobre la creación y manejo de certificados, utilizados por el servidor y los
navegadores para respaldar dichas comunicaciones seguras.
Aunque durante la aplicación profesional el manejo de certificados no sea como lo
hemos tratado durante la práctica, ha sido interesante. Sin embargo, en los casos reales se
depende de entidades certificadoras, que son las que expiden los certificados, siendo éstos
reconocidos como certificados seguros por parte de los navegadores web.
Por último, añado que haber tratado este tema es muy importante, ya que a la hora de
comunicarnos con el usuario, la confidencialidad y la seguridad de los datos transferidos debe
ser una de las máximas prioridades como desarrolladores.
IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org
10. Práctica 6: Servidor Web Seguro
10
5 BIBLIOGRAFIA
Curso de Servicios Linux, páginas 50 en adelante.
Consultado en: http://moodle.iesgrancapitan.org/file.php/63/LINUX/CURSO_servicioslinux.pdf
Rafael del Castillo, Configuración Apache SSL
Consultado en:
http://moodle.iesgrancapitan.org/file.php/63/Apache/mypdf_20_ConfiguracionApacheS
SL.pdf
Jbdaldoma.net, redirigir a una conexión segura HTTPS en Apache
Consultado en: http://www.jdbaldoma.net/2012/05/redirigir-una-conexion-segura-httpsen.html
IES Gran Capitán. C/. Arcos de la Frontera, S/N. 14014 – Córdoba.
http://www.iesgrancapitan.org http://www.iesgrancapitan.org/blog04/ informatica@iesgrancapitan.org