You are on page 1of 32

CFGM.

Servicios en red

Unidad 4
Servicio HTTP
4 Servicio HTTP

CONTENIDOS
1. El servicio HTTP
2. Los tipos MIME
3. El servidor y el cliente web
4. Configuracin del servidor web (GNU/Linux)
5. El servidor web seguro
6. Activar la seguridad en Apache

1
4 Servicio HTTP

1. El servicio HTTP

Las siglas HTTP corresponden al Protocolo de Transferencia de HiperTexto (HyperText Transfer


Protocol), creado en 1990 en el CERN (Laboratorio Europeo de Fsica de las Partculas) como un medio
para compartir datos cientficos a escala internacional de una manera rpida y con un coste moderado.
Es el mtodo ms comn de intercambio de informacin en la World Wide Web, por el cual se transfieren
las pginas web o HTML a un ordenador. El hipertexto no es ms que el contenido de las pginas web y
el protocolo de transferencia es el conjunto de normas mediante las cuales se envan las peticiones de
acceso a una web y la consiguiente respuesta.

En la actualidad, gran parte de las aplicaciones software, ya sean de gestin, consulta, ofimtica,
formacin, entretenimiento, comercio electrnico, etctera, son aplicaciones web que los usuarios pueden
utilizar mediante navegadores que permiten acceder a los servidores web donde se alojan, ya sea en
redes pblicas (Internet) o privadas (intranets).

El servicio HTTP es el pilar sobre el que se construye todo este entramado que hace posible la
intercomunicacin a escala planetaria.

Existe una versin segura de HTTP llamada HTTPS que permite el uso de cualquier mtodo de cifrado
siempre que lo compartan el servidor y el cliente. Basta con agregar unos componentes a los equipos
para que ejecuten el algoritmo correspondiente de encriptacin.

2
4 Servicio HTTP

1. El servicio HTTP
1.1. Cmo funciona el protocolo HTTP
El HTTP es un protocolo cliente-servidor cuyo funcionamiento est basado en el envo de mensajes. Su
mecanismo es el siguiente:

El usuario especifica en el cliente web (o navegador) la direccin de la pgina que quiere consultar
segn un formato http://direccin[:puerto][path].

El cliente web descodifica la informacin de la URL diferenciando el protocolo de acceso, la IP o nombre


de dominio del servidor, el puerto, etctera.

El cliente web establece una conexin (socket) con el servidor web y solicita la pgina (mensaje
request).

El servidor enva dicha pgina (si no existe, enva un cdigo de error) y el cliente web interpreta el
cdigo HTML recibido (mensaje response del servidor).

Se cierra la conexin.

3
4 Servicio HTTP

1. El servicio HTTP
1.1. Cmo funciona el protocolo HTTP
El protocolo HTTP es un protocolo sin estado, es decir, no recuerda nada relativo a conexiones anteriores
a la actual. Cuando el cliente web solicita un documento HTML, puede ocurrir lo siguiente:

Si el servidor lo encuentra, lo enva.

Si no existe, enva un cdigo de error.

En ambos casos, y al tratarse de un protocolo sin estado, la conexin se libera al finalizar. Solo dura el
tiempo necesario para la transmisin del documento solicitado. Para cada objeto que se transfiere por la
red, se realiza una conexin independiente.

Para resolver estas situaciones de falta de memoria, adems de almacenarse la informacin de la


sesin actual se utilizan las cookies.

En la versin 1.0 del protocolo HTTP el cliente web poda solicitar del servidor solo tres operaciones:

4
4 Servicio HTTP
2. Los tipos MIME
Son una forma abierta y extensible de representar el contenido de los datos. En la actualidad se ha
generalizado su utilizacin y tambin puede llamrseles IMT.

MIME adjunta un archivo de cabecera a los documentos en el que indica el tipo de contenido del archivo.
De esta manera, el servidor web y el navegador pueden manejar y mostrar los datos correctamente.

Los MIME indican el tipo de archivo que se transfiere del servidor web al cliente o navegador web.

Se componen de tipos (indicados antes del carcter /) y subtipos (despus del carcter /). Por
ejemplo, son tipos MIME:

Text/html. Define todos los archivos de texto que contienen cdigo HTML.

Video/mpeg. Define todos los archivos de vdeo almacenados en formato mpeg.

Image/*. Define todos los archivos de imagen almacenados en cualquier formato (gif, jpeg, bmp,
etctera).

El prefijo especial x- queda reservado para tipos experimentales o tipos de uso interno de organizaciones.

El protocolo HTTP usa los tipos MIME en sus cabeceras para, por ejemplo:

1. Informar al cliente del tipo de datos que recibe del servidor con el encabezado content-type. Un
navegador tpico puede manejar los datos de tres formas distintas segn el tipo MIME indicado en
content-type:

Visualizar el documento, por ejemplo con tipos text/html.

Llamar a una aplicacin externa, por ejemplo con tipos application/pdf.

5 Preguntar al usuario qu hacer ante un tipo que no se entiende, como, por ejemplo, image/x-fwf.
4 Servicio HTTP
2. Los tipos MIME
2. Permitir la negociacin de contenido. El cliente, en su peticin, incluye los tipos MIME que acepta. Por
ejemplo, si un navegador puede soportar documentos de tipo application/pdf, lo indicar en la cabecera
HTTP:

Allow: application/pdf

3. Encapsular una o ms entidades dentro del cuerpo de mensaje, mediante los tipos MIME multipart.
Quiz el ejemplo ms conocido sea el tipo multipart/form-data utilizado para encapsular los datos de un
formulario en su envo hacia el servidor mediante el mtodo POST.

3. El servidor y el cliente web


3.1. El servidor web
Para que el navegador llegue al servidor web (ya sea en una red local o en Internet) ste debe tener
asignada una direccin IP nica que identifique al equipo en la red.

Cuando el navegador hace una peticin al servidor web, utiliza un nombre que identifica al servidor. Esta
solicitud se transmite a un servidor DNS que resuelve el nombre y devuelve la direccin IP
correspondiente. La solicitud del navegador se dirige al servidor web correcto. La informacin que el
usuario proporciona al navegador para conectar con un servidor web se llama URL (Uniform Resource
Locator), que indica la forma de acceder a un recurso utilizando un protocolo de comunicacin.

6
4 Servicio HTTP
3. El cliente y el servidor web
3.1. El servidor web
Atiende peticiones recibidas de los navegadores o clientes web y debe hacerlo de forma eficiente y
segura. La ubicacin lgica de un servidor web es Internet, pero los hay que dan servicio a intranets o a
redes locales.

Cuando un usuario ejecuta Firefox y hace clic sobre un enlace a una pgina web, enviar una solicitud al
servidor web que aloja dicha pgina para que se la muestre (servir la pgina). Si la encuentra, la enviar y
si no, transmitir al cliente un mensaje de error. Cuando el cliente recibe la pgina web, interpreta el
cdigo HTML y muestra las fuentes, colores, imgenes que la componen, etctera, de forma correcta

El servidor web, adems de


suministrar pginas web HTML
que no cambian (estticas),
tambin permite la ejecucin de
pequeos programas en
diferentes lenguajes (PHP, CGI,
Java, etctera) que les
proporcionan dinamismo.
Los tres elementos bsicos que
componen las peticiones web
dinmicas son: el cliente que la
hace, el servidor que la atiende
y los datos solicitados.

7
4 Servicio HTTP
3. El cliente y el servidor web
3.1. El servidor web

Para que el navegador llegue al servidor web (ya sea en una red local o en Internet) ste debe tener
asignada una direccin IP nica que identifique al equipo en la red. Cuando el navegador hace una
peticin al servidor web, utiliza un nombre que identifica al servidor. Esta solicitud se transmite a un
servidor DNS que resuelve el nombre y devuelve la direccin IP correspondiente. La solicitud del
navegador se dirige al servidor web correcto. La informacin que el usuario proporciona al navegador
para conectar con un servidor web se llama URL (Uniform Resource Locator), que indica la forma de
acceder a un recurso utilizando un protocolo de comunicacin.

La URL de solicitud de un recurso consta de los elementos siguientes:

1. El protocolo que debe utilizarse (htp , htps , ftp , ftps ).

2. La doble barra con dos puntos (//:), que hace las veces de separador.

3. El servidor, indicado por la direccin IP o el nombre (FQDN) que contiene el recurso.

4. La ruta al recurso, el directorio y los subdirectorios del sitio web donde se ubica el recurso.

5. El recurso al que se quiere acceder.

8
4 Servicio HTTP

3. El cliente y el servidor web


3.2. El cliente web
El cliente o navegador web es una aplicacin que permite visualizar pginas web alojadas en servidores
web, interpretar cdigo HTML mostrando el contenido de la pgina en la pantalla y, si la pgina lo permite,
interactuar con ella o navegar a travs de enlaces a otras pginas web.

Los contenidos de las pginas web pueden ser de diferentes tipos: textos, imgenes, vdeos, etctera. Su
reproduccin o visualizacin requiere otros complementos que son aadidos al navegador y que quedan
integrados de forma transparente al usuario. Adems de este funcionamiento bsico, se pueden ejecutar
determinadas aplicaciones complementarias que aumentan la funcionalidad de la pgina web:

Aplicaciones que se ejecutan en el cliente web, es decir en el equipo del usuario. El servidor enva el
cdigo al navegador y este lo ejecuta. Lgicamente, el navegador debe ser capaz de ejecutarlo y, para
ello, a menudo requiere la instalacin de extensiones.

Aplicaciones que se ejecutan en el servidor y generan un cdigo HTML que se enva al navegador, que
interpreta y muestra al usuario.

Entre los principales navegadores web estn:

Mozilla Firefox

Internet Explorer

Otros: Amaya, Opera, Dillo o Chrome, o basados en texto como Lynx, Links, etctera.

9
4 Servicio HTTP

4. Configuracin del servidor web (GNU/Linux)


4.1. Instalacin del mdulo Webmin Apache Server
Abre el navegador Firefox y ve a la interfaz de Webmin (http://localhost:10000). Introduce el nombre de
usuario y la contrasea.

Descarga el mdulo Apache Server de la web oficial de Webmin (http://www.webmin.com/standard.html).

Desde la interfaz de Webmin, sigue este itinerario: Webmin > Configuracin de Webmin > Mdulos de
Webmin.

Desde el archivo local, busca el mdulo descargado (apache.wbm.gz) y pulsa en Instalar Mdulo.

10
4 Servicio HTTP

4. Configuracin del servidor web (GNU/Linux)


4.1. Instalacin del mdulo Webmin Apache Server
Una vez instalado, se muestra la siguiente ventana:

Comprobamos que en la pestaa Servidores aparece una nueva entrada, correspondiente a Apache.

4.2. Enlazado de Apache con el servidor


servidor.aulaSER.com
Una vez instalado Apache queremos que, cuando se acceda desde el navegador a
servidor.aulaSER.com, se muestre nuestro servidor Apache.

Iremos a la pestaa Existing Virtual Hosts y accederemos al servidor por defecto de Apache (Default) y,
en la opcin Redes y Direcciones, asignaremos en Nombre de mquina de servidor nuestro
servidor.aulaSER.com.

Cuando en el navegador Firefox vayamos a la URL http://servidor.aulaSER.com, mostrar la pgina de


11
inicio creada.
4 Servicio HTTP

4. Configuracin del servidor web (GNU/Linux)


4.3. Configuracin global de Apache
Abrimos la pestaa Servidores y seleccionamos la opcin Servidor Web Apache.

Pasamos a la pestaa Global configuration. Muestra la siguiente interfaz:

12
4 Servicio HTTP

4. Configuracin del servidor web (GNU/Linux)


4.3. Configuracin global de Apache
La opcin Lmites y Procesos configura directivas relacionadas con el tamao de las peticiones HTTP y
con la cabecera de las peticiones HTTP, el nmero de procesos que pueden crearse desde los procesos
creados por los hijos de Apache, etctera.

Estos parmetros los dejamos con sus valores por defecto.

En Redes y Direcciones se configura la red a la que se da servicio y el puerto de escucha. La opcin por
defecto es cualquier red. Se hace lo mismo para los servidores virtuales.

En Tipos MIME se aprecia un listado completo de los tipos disponibles a partir del archivo
/etc/mime.types.

Usuarios y grupos permite decidir quin ser el usuario por defecto de Apache y el grupo al que
pertenecer. Por lo general, son www-data/www-data, respectivamente y as lo mantendremos.

La opcin Varios permite configurar algunos detalles como la informacin que se visualizar en la
cabecera HTTP del servidor, el nombre y la ruta completa del archivo de bloqueo, el archivo que
almacenar el PID del servidor, etctera.

En Archivos de Opciones de Por-Directorio, el usuario puede crear archivos (llamados.htaccess) con


opciones especficas para un determinado directorio. Estas opciones se aplican a todos los archivos y
subdirectorios del directorio en cuestin, a menos que se indique lo contrario en otro archivo de opciones.

Configure Apache Modules muestra un listado con todos los mdulos disponibles para Apache donde se
13 especifica cules estn instalados.
4 Servicio HTTP

4. Configuracin del servidor web (GNU/Linux)


4.3. Configuracin global de Apache
Por ltimo, estn las Opciones de Edicin de los propios archivos de configuracin.

El archivo /etc/apache2.conf contiene las directivas de configuracin global del servicio (una por
lnea).

Est dividido en secciones y cada una contiene un grupo de directivas relacionadas con dicha seccin.

4.4. Mdulos de Apache


Una de las caractersticas ms importantes de los mdulos de Apache es que permiten la carga dinmica,
ya que son objetos compartidos dinmicos (Dynamic Shared Object, DSO) y su extensin es .so.

Para que Apache2 sepa qu mdulos debe cargar, al arrancar el servicio dispone en el directorio
/etc/apache2/ de otros dos; en uno se halla la lista de mdulos disponibles (mods-available) y en el
otro, la de mdulos activados (mods-enabled).

Cuando se activa un mdulo de Apache, se crea un enlace simblico de los archivos correspondientes del
directorio mods-available a los de mods-enabled. Cada mdulo de Apache tiene asociados dos archivos:
nombre_modulo.load y nombre_modulo. conf. El primero tiene la carga del mdulo y el segundo,
la configuracin.

14
4 Servicio HTTP

4. Configuracin del servidor web (GNU/Linux)


4.5. Hosts virtuales en Apache
Mediante el uso de hosts virtuales, Apache2 permite alojar varios dominios en una sola mquina, es decir,
ejecutar ms de un sitio web en el mismo servidor.

Podemos albergar dos sitios (web servidor1.aulaSER.com y servidor2.aulaSER.com) en la misma mquina,


respondiendo ambos a una sola IP y con Apache2 configurado y atendiendo las peticiones de ambos sitios
por el puerto 80.

Apache soporta dos tipos de hosts virtuales:

1. Hosts virtuales basados en nombres: permiten alojar varios nombres de host (o dominios) en una
misma mquina (IP).

2. Hosts virtuales basados en IP: una mquina responde de diferente manera a diferentes direcciones IP.
Tenemos mltiples IP asignadas al sistema y queremos que cada una de ellas soporte un sitio web.

4.6. Autenticacin en Apache


Cuando el servidor Apache recibe la peticin de una pgina web, comprueba que se haya autorizado antes
de atender la solicitud. En concreto, realiza tres pasos: autenticacin, autorizacin y control de acceso.

Autenticacin: comprueba la identidad del usuario. El usuario proporciona un nombre y una contrasea.
Si coinciden con las almacenadas en su base de datos, da por concluida la primera operacin.
15
4 Servicio HTTP

4. Configuracin del servidor web (GNU/Linux)


4.6. Autenticacin en Apache
Existen dos mtodos de autenticacin HTTP:

Bsico o simple: el usuario en el navegador web introduce su login o nombre de usuario y contrasea,
y se envan al servidor sin cifrar.

Digest: el usuario en el navegador web introduce su login de usuario y contrasea y se envan cifrados
al servidor.

Estos dos mtodos solo autentican al usuario. Los datos que se envan del navegador web al servidor o
viceversa no estn cifrados. Son formas de controlar el acceso a los recursos, pero no protegen el
intercambio de informacin.

Esta operacin tambin puede realizarse mediante la utilizacin de certificados digitales.

Autorizacin: el servidor debe comprobar si el usuario validado tiene acceso a la informacin que
solicita. Para ello, el servidor dispone de una lista de los usuarios que pueden acceder a los recursos que
ofrece.

Desde Apache2 la autorizacin se gestiona con directivas del tipo <Directory> en el archivo de
configuracin o mediante la utilizacin de archivos .htaccess.

Control de acceso: establece y controla las mquinas que tienen acceso a un recurso
independientemente del usuario que accede. Desde Apache2 el control de acceso se gestiona mediante
las directivas <Directory>, <Files> y <Location>, o mediante el archivo de configuracin
16 .htaccess para controlar un directorio concreto.
4 Servicio HTTP

4. Configuracin del servidor web (GNU/Linux)


4.7. Control de acceso en Apache2
Cuando un usuario hace una peticin HTTP al servidor, este puede atenderla o no en funcin de la
mquina desde la que se hace la solicitud.

En este caso se utilizan las directivas Allow, que permite, y Deny, que rechaza el acceso en funcin del
nombre o la direccin de la mquina desde la que se hace la solicitud de informacin.

La directiva Order, por su parte, indica a Apache2 en qu orden tiene que aplicar las anteriores.

La sintaxis es:

Allow from direccin

Direccin es la direccin IP o nombre de dominio completamente cualificado. Se pueden indicar varias


direcciones o nombres de dominio.

Si, por ejemplo, se quisiera denegar el acceso a un equipo con IP 240.77.0.10, habra que escribir:

Deny from 240.77.0.10

En el caso de que se desease denegar el acceso desde un nombre de equipo, habra que hacerlo desde
el servidor que pertenece al dominio aulaSER.com:

Deny from servidor.aulaSER.com

17
4 Servicio HTTP

4. Configuracin del servidor web (GNU/Linux)


4.7. Control de acceso en Apache2
Las peticiones procedentes de dicha mquina sern denegadas.

Por otra parte, la directiva Order indica en qu orden se aplican las directivas Allow y Deny.

En el ejemplo siguiente, primero se evala Deny (from all) y no se permite el acceso a ningn usuario. A
continuacin, se realiza la misma operacin con Allow, que permite el acceso solo a usuarios de
pc11.aulaSER.com:

Order deny,allow

Deny from all

Allow from pc11.aulaSER.com

Si se usa solo la directiva Allow (sin combinar con Deny), se permitira el acceso a usuarios de esa
mquina y a cualquier otro usuario, pero en este caso solo deben entrar los que pertenecen a
pc11.aulaSER.com.

18
4 Servicio HTTP

5. El servidor web seguro


Un servidor web es seguro cuando garantiza la comunicacin con el cliente web con autenticacin y
confidencialidad.

El protocolo SSL permite establecer una comunicacin segura y codificada entre el servidor web y el
navegador. SSL trabaja conjuntamente con el protocolo HTTP, creando un protocolo de transmisin de
hipertexto seguro llamado HTTPS.

El protocolo HTTPS se basa en dos tipos de criptografa:

Simtrica o de clave compartida.

Asimtrica o de clave pblica-privada.

Ambos tipos presentan diversas ventajas e inconvenientes, pero cumplen con los objetivos deseados.

En concreto, la criptografa asimtrica se utiliza en los procesos de autenticacin, ya que cada usuario
protege su clave secreta. No obstante, es lenta para el cifrado, a diferencia de la criptografa simtrica,
mucho ms rpida, aunque poco eficaz a la hora de gestionar las claves.

5.1. Qu es la firma digital?


Es una porcin de cdigo que se adjunta a un mensaje y que garantiza al destinatario la identidad del
remitente y la integridad del mensaje. Se utiliza en entornos de clave pblica.

19 La figura siguiente muestra la tcnica de la firma digital sobre un mensaje.


4 Servicio HTTP

5. El servidor web seguro


5.1. Qu es la firma digital?
El proceso de firma digital se desarrolla en varias fases:

20
4 Servicio HTTP

5. El servidor web seguro


5.1. Qu es la firma digital?
Todo el proceso es transparente para el usuario.

La asociacin entre la firma digital y la persona que la utiliza es el objetivo de los certificados digitales.

El certificado digital (CSR) se define como el conjunto de caracteres aadidos a un documento que
acreditan al autor del documento (autenticacin) y la integridad de los datos.

El certificado digital contiene la clave pblica del usuario y algunos datos personales como el nombre,
apellidos, DNI, etctera, firmados digitalmente por una autoridad certificadora (CA).

La CA es un tercero de confianza que permite que personas que no se conocen entre s, puedan confiar
en los certificados que se presentan el uno al otro. Son CA, por ejemplo, Verisign o la Fbrica Nacional de
Moneda y Timbre.

El certificado digital lo utiliza el usuario para firmar sus mensajes con su clave privada (criptografa
asimtrica), que solo l conoce y que impide que pueda despus negar que es el autor. La validez de la
firma puede ser comprobada por cualquier otro usuario que tenga la clave pblica del autor.

21
4 Servicio HTTP

5. El servidor web seguro


5.2. El protocolo SSL
En apartados anteriores se vio cmo Apache gestiona la autenticacin del usuario mediante credenciales.

El protocolo SSL (Secure Socket Layer) garantiza que todo el intercambio de informacin realizado en
una sesin de conexin se hace de forma segura mediante encriptacin.

En una conexin TCP/IP, el protocolo SSL proporciona las garantas siguientes:

1. Confidencialidad: cifra la informacin transferida.

2. Integridad del mensaje: controla cualquier modificacin intencionada o accidental en la informacin


mientras se transmite por Internet.

3. Autenticacin del servidor: asegura la identidad del servidor al que se establece la conexin y al que
puede enviar el usuario informacin personal mediante el certificado de servidor.

4. Autenticacin de cliente: el servidor conoce la identidad del usuario y le permite o no su acceso a reas
protegidas. Para ello, el cliente debe tener instalado un certificado de cliente en su ordenador que
identifica el servidor al cliente.

El protocolo SSL utiliza una clave de sesin que se genera en cada transaccin. Cuanto mayor sea la
longitud de la clave, ms difcil ser romper la encriptacin. La mayora de los navegadores soportan
claves de sesin de 128 bits.

22
4 Servicio HTTP
5. El servidor web seguro
5.2. El protocolo SSL
La comunicacin se realiza en dos fases:

1. Fase de saludo (handshaking, estrechar las manos): el cliente y el servidor se identifican mediante el
intercambio de claves pblicas (encriptacin asimtrica) y llevan a cabo la autenticacin utilizando
certificados digitales.

2. Fase de comunicacin: se realiza el intercambio de datos utilizando, generalmente, una clave de tipo
simtrico.

Los navegadores llevan ya incorporados un mdulo SSL que se activa de forma automtica cuando es
necesario. Normalmente, se escribe https:// en la URL.

6. Activar la seguridad en Apache


6.1. Activacin desde Webmin del mdulo SSL
Desde el navegador, accede a https://localhost:10000 y ve a Servidores > Servidor web Apache >
Configuracin Global > Configuracin Mdulos de Apache.

Activa la casilla correspondiente del mdulo ssl y, a continuacin, pulsa Activar mdulos seleccionados.

En el archivo que almacena los puertos de escucha /etc/apache2/ports.conf, se comprueba que


hay una directiva <IfModule> que incluye la escucha en el puerto 443 si el mdulo ssl est activado.

23
4 Servicio HTTP
6. Activar la seguridad en Apache
6.2. Creacin del host virtual
Desde la pestaa Creacin de host virtual, crea uno
especfico para conexiones seguras basado en el host
virtual por defecto y con directorio de inicio para
documentos /var/www/ssl/htdocs que debe
realizarse como usuario sudo.
En este directorio dejaremos un archivo index.html
preparado para la prueba de conexin.

6.3. Obtencin del certificado


Si ahora entramos en Opciones SSL de nuestro nuevo host virtual, veremos que se deben suministrar unos
certificados para el servidor y que se han de obtener. Si intentamos salvar con las opciones por defecto devolver
un mensaje de error.
En un servidor de produccin que fuera real, estos certificados deberan
solicitarse a una autoridad de certificacin. Sin embargo, en el caso del servidor del aula transformaremos nuestro
servidor en una CA.
La orden para crear el certificado SSL es apache2-ssl-certificate, pero no va incluida en Ubuntu. Hay que
descargar e instalar el archivo apache2-ssl.tar.gz.
Al descomprimirlo, deja en el directorio dos archivos: ssleay.cnf y apache2-sslcertificate.
Hay que copiar ssleay.cnf en /usr/share/apache2.
Por su parte, apache2-ssl-certificate deber copiarse a /usr/sbin.
Tambin habr que crear el directorio donde se guardar el certificado ssl: /etc/apache2/ssl.
24
4 Servicio HTTP
6. Activar la seguridad en Apache
6.3. Obtencin del certificado
El certificado se generar tras ejecutar la orden:

$ sudo apache2-ssl-certificate

creating selfsigned certificate

replace it with one signed by a certification authority (CA)

enter your ServerName at the Common Name prompt

If you want your certificate to expire after x days call this programm with -
days x

Generating a 1024 bit RSA private key

................++++++

..............++++++

writing new private key to /etc/apache2/ssl/apache.pem

You are about to be asked to enter information that will be incorporated into
your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

25
4 Servicio HTTP
6. Activar la seguridad en Apache
6.3. Obtencin del certificado
There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter ., the field will be left blank.

Country Name (2 letter code) [GB]:ES

State or Province Name (full name) [Some-State]:Valencia

Locality Name (eg, city) []:Valencia

Organization Name (eg, company; recommended) []:McGraw

Organizational Unit Name (eg, section) []:Hill

server name (eg. ssl.domain.tld; required!!!) []:servidor.aulaSER.com

Email Address []:webmaster@aulaSER.com

ser-admin@servidor:/etc/apache2/ssl$ ls

ad11d557.0 apache.pem

De esta forma, se ha creado el archivo /etc/apache2/ssl/apache.pem que contiene las claves


(RSA PRIVATE KEY) y el certificado (CERTIFICATE) pertenecientes al servidor servidor.aulaSER.com,
firmado por nosotros mismos.
26
4 Servicio HTTP
6. Activar la seguridad en Apache
6.4. Instalar el certificado
A continuacin, habr que crear los directorios y archivos siguientes:

$cd /etc/apache2/ssl

$sudo mkdir miCA

$sudo mkdir miCA/private

Las rdenes debern ejecutarse desde /etc/apache2/ssl. Se copian las claves de la CA al directorio
correspondiente con el nombre cakey.pem:

$sudo cp apache.pem miCA/private/cakey.pem

Luego, se copia el certificado de la CA en el lugar ms indicado.

$sudo cp apache.pem miCA/cacert.pem

Se crea el fichero miCA/serial y se guarda en modo texto. Su contenido debe ser una lnea con el
valor 01, tal como se muestra a continuacin.

$more miCA/serial

01

Ahora tan solo queda incluir en el sitio las directivas que indican que el acceso al mismo se hace
mediante el protocolo HTTPS.

27
4 Servicio HTTP
6. Activar la seguridad en Apache
6.5. Certificados para Webmin
Una vez se dispone de los certificados desde Webmin, hay que ir a Opciones SSL del servidor virtual
seguro e indicar el itinerario que debe seguirse hasta ellos.

Debemos aplicar los cambios.

De cualquier forma, Webmin no gestiona bien los certificados. Para tener completa seguridad de que se
han incluido en el archivo de configuracin del host virtual seguro, hay que editar el archivo e incluir las
directivas siguientes:

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/miCA/cacert.pem

SSLCertificateKeyFile /etc/apache2/ssl/miCA/private/cakey.pem

Salimos y, desde Webmin, aplicamos los cambios en Apache.

28
4 Servicio HTTP
6. Activar la seguridad en Apache
6.6. Comprobacin de funcionamiento
Abrimos el navegador y vamos a https://servidor. Veremos un mensaje de aviso: el certificado que tiene
disponible no es fiable (ya lo sabamos).

Aadimos una excepcin.

Confirmamos la excepcin. El mensaje incluido en el archivo index.html ya est preparado.

La configuracin segura de Apache para Windows es idntica a la de Ubuntu. Partimos de un servidor


Apache2.2 instalado y con hosts virtuales configurados.

29
4 Servicio HTTP
6. Activar la seguridad en Apache
6.6. Comprobacin de funcionamiento
Para activar el soporte SSL de Apache2 en Windows XP, debemos hacer lo siguiente:

1. Comprobamos que est disponible el ejecutable openssl.exe en el directorio /bin de Apache2.2.


Hay que seleccionar el archivo de Apache2 binario con soporte SSL.

2. Nos aseguramos de que el archivo mod_ssl.so se encuentra en el directorio /modules de


Apache2.2

En el archivo de configuracin httpd.conf, introducimos las lneas:

LoadModule ssl_module modules/mod_ssl.so


Include conf/extra/httpd-ssl.conf

3. Aadimos la directiva especfica de SSL en httpd.conf:

<Directory />
SSLRequireSSL
</Directory>

Con estas acciones, bastara para que el servidor Apache en Windows funcionara de forma segura.

30
4 Servicio HTTP

Crditos:
Autores del libro del alumno

Elvira Mifsud Taln y Ral V. Lerma-Blasco

Edicin

Estudio177.com

Eugenia Arrs Lpez

You might also like