Professional Documents
Culture Documents
Servicio web
El ms usado en Internet Cliente = Navegador web Servidor = Donde se alojan las pginas web Se especifica el nombre dns del equipo que tiene instalado el servidor web + ruta + nombre de la pgina web solicitada El servidor lee el archivo solicitado donde est alojado y se lo enva al cliente
Servicio web
Servicio web
Pgina web
Archivo escrito en lenguaje de marcas, que contiene texto, hipervnculos, imgenes Hipervnculos = Hiperenlaces Enlazan la pgina con otras partes de la pgina o con otras pginas que estn en el mismo equipo o en otros equipos de la red
Sitio web
Conjunto de pginas webs y archivos complementarios que se distribuyen en Internet o en una Intranet bajo un mismo nombre DNS
www.mec.es Conjunto de pginas webs y ficheros complementarios a los que se accede con ese nombre
Servidor web
Equipo con caractersticas apropiadas para dar servicio a los clientes
Tipo de contenidos Nmero de sitios webs Cantidad de clientes que acceden simultneamente
Elegir:
Cantidad de memora Tipo y cantidad de discos Procesador Ancho de Banda Caractersticas hardware y software
Software web
Apache Web Server Microsoft IIS Sun Java Web System Server,
Libre o propietario Recursos que consumen Posibilidad de administrar varios sitios Control de acceso a los usuarios Seguridad en las transmisiones Integracin de mdulos de servidor: PHP, ASP, Perl,
Estructura WWW
World Wide Web Red global mundial
Creada en el CERN en 1989 por Tim Berners Lee y Robert Caillou Sistema global de documentos enlazados entre s por hiperenlaces
Funcionamiento
Red de documentos enlazados a travs de hipervnculos o hiperenlaces
Cada documento es un nodo de la red
Red de servidores encargados de alojar y distribuir los documentos Programas clientes (navegadores) que muestran los documentos, con los hiperenlaces (clic abre pgina web enlazada)
Google Chrome, Mozilla Firefox, Internet Explorer, Opera, Safari,
URL
Uniform Resources Locator Localizador uniforme de recursos
Se utiliza para localizar un recurso en Internet o en otra red http://www.ieselrincon.org/index.html
Protocolo://usuario:contrasea@mquina:puerto/ruta_recurso
http://www.ieselrincon.org/matematicas/ejercicios/segundogrado.html
HTTP
HyperText Transfer Protocol Protocolo de transferencia de hipertexto
Normas para el intercambio de informacin contenida en las pginas web Cliente, servidor Desarrollado desde 1990 por W3C (WWW Consortium) y IETF (versiones 0.9, 1.0, 1.1)
Caractersticas HTTP
Servidor HTTP utiliza el puerto 80 por defecto (puede usar otros puertos) Para establecer una comunicacin HTTP entre cliente y servidor necesita crear previamente una conexin TCP Comunicacin entre cliente y servidor mediante mensajes de peticin y de respuesta codificados en ASCII Cada elemento de una pgina web (documento, imgenes, videos, etc.) se transfiere independientemente con su mensaje de peticin y su mensaje de respuesta
HTTP
El contenido de una pgina web que se transfiere entre un servidor y un cliente est codificado en un lenguaje de marcas que describe como se visualiza la pgina web Lenguaje de marcas Descripcin de la visualizacin de la pgina
HTML: El ms usado Navegador web: Cliente http que interpreta el contenido de una pgina web escrita en HTML o en otro lenguaje para crear una representacin de la pgina para ser visualizada por el usuario
HTTP
Cuando en un navegador se escribe la URL de una pgina web
1. Se solicita al servidor DNS que resuelva el nombre de equipo servidor web o HTTP usado en la URL 2. Obtenida la IP del servidor HTTP, se establece una conexin TCP entre cliente y servidor HTTP 3. Se hace la peticin del documento web al servidor y ste devuelve su contenido en un mensaje de respuesta 4. Si el documento web incluye elementos adicionales como imgenes, sonidos, , hay un proceso de envo peticin/respuesta por cada elemento
Mensajes HTTP
Desde que un cliente HTTP (navegador web) establece una conexin con un servidor HTTP, para descargar una pgina web hasta que la descarga completamente, se desarrolla una sesin HTTP
Normalmente varias transacciones de mensaje peticin/respuesta entre cliente y servidor Cada recurso adicional (imagen, audio, video, etc) que contiene una pgina web un mensaje de peticin/respuesta (recurso solicitado o mensaje de que no se ha podido obtener)
Mensajes HTTP
Mensajes HTTP
Mensaje: Texto en ASCII de 4 campos
Lnea de peticin o respuesta (request-response)
Informacin sobre la peticin o respuesta
Encabezados
Informacin adicional sobre opciones relativas al mensaje Una lnea de encabezado por cada opcin que se especifique
Mensajes HTTP
Mensajes de peticin
Enviado al servidor HTTP desde el cliente La lnea de peticin contiene 3 datos separados por espacio
Mtodo de peticin
Indica la accin que se pretende realizar sobre el recurso indicado en la peticin Mtodos ms utilizados GET y POST URI Uniform Resource Identifier (Identificador Uniforme de Recursos) Identifica un recurso (servicio, pgina, documento, direccin de correo, ) URI puede ser URL (Localizador) es un tipo de URI, URN (Nombre) o ambos Ms completo que URL: permite incluir en la direccin una subdireccin Ruta del recurso dentro del directorio raz del sitio web
/image/escudo.gif recurso escudo.gif que se encuentra en el directorio image, bajo el directorio raz del sitio
Versin de HTTP
Encabezados
Las lneas de encabezado indican varias opciones relativas a la peticin Cada encabezado se representa con una lnea de texto con el nombre de la opcin o del encabezado + ; + valor asignado a la opcin
Mensajes de peticin
Mensajes de peticin
Se puede instalar una extensin para que el navegador permita ver el contenido de los mensajes de peticin y respuesta HTTP de las conexiones que se establezcan
Mozilla Firefox Live Http Header Internet Explorer IEWatch Google Chrome Herramientas para desarrolladores / Network
POST
El cliente enva informacin al recurso indicado del servidor para que sea procesada por una aplicacin Normalmente, al rellenar un formulario y Enviar En el cuerpo del mensaje se enva la informacin a procesar
HEAD
Se solicita al servidor que enve solamente los encabezados correspondientes a la peticin del recurso Similar a GET pero enviando slo los encabezados y no el contenido Utilizado por los navegadores, p.e., para saber si una pgina web que tienen almacenada en cach ha sido actualizada en el servidor
Accept-Enconding Sistema de codificacin que espera el navegador para el recurso a recibir Accept-Charset Referer Cookie
Conjunto de caracteres que espera recibir el navegador URL desde donde se origin la peticin (URL de la pgina que contena el enlace) Contenido de la cookie almacenada en el equipo cliente y relativa al sitio web al que se hace la peticin
Mensajes de respuesta
Enviados por el servidor HTTP a clientes HTTP en respuesta a una peticin La lnea de peticin contiene 3 datos separados por espacio
Versin de HTTP Cdigo de respuesta o cdigo de estado
Valor numrico que representa como ha sido recibida y procesada la peticin a la que se est respondiendo
Encabezados
Las lneas de encabezado indican varias opciones relativas a la respuesta Cada encabezado se representa con una lnea de texto con el nombre de la opcin o del encabezado + ; + valor asignado a la opcin
Mensajes de respuesta
Cdigos de respuesta
Un cdigo de respuesta o cdigo de estado
N de 3 cifras que se incluye en la lnea de respuesta de un mensaje de respuesta HTTP Sirve para indicar si una peticin se ha recibido y atendido correctamente o si se ha producido un problema que haya alterado una normal recepcin y atencin de la peticin 1 dgito Representa un grupo de respuestas
De forma general, el tipo de respuesta
2 y 3 dgito Especificar la respuesta concreta dentro del grupo 200 Para una peticin GET indica que se est respondiendo con una respuesta que incluye el recurso solicitado 201 Indica que se ha creado en el servidor el recurso solicitado
Cdigos de respuesta
Grupos de Descripcin cdigos 1xx
Respuesta informativa Indica al cliente que ha recibido la peticin y se esta continuando Respuesta provisional, hay que realizar una nueva transaccin HTTP (respuesta no definitiva) No se aconseja que los servidores enven estas respuestas Peticin correcta Peticin recibida, aceptada y procesada correctamente en el servidor Redireccin Se le indica al cliente HTTP que tiene que realizar alguna accin adicional para que se pueda resolver completamente la peticin que ha realizado Errores del cliente Se recibi una peticin con una sintaxis errnea o no se ha podido procesar la peticin
5xx
Error de servidor Se ha producido un error en el servidor que le ha impedido atender y procesar la peticin
http://es.wikipedia.org/wiki/Anexo:C%C3%B3digos_de_estado_HTTP
Tipos MIME
El protocolo HTTP transmite la informacin en cdigo ASCII (fotos, videos, ?) MIME (Multipurpose Internet Mail Extensions)
Extensiones multipropsito de Correos de Internet Establece un conjunto de especificaciones para que se puedan enviar varios tipos de archivo mediante correo electrnico En principio, orientado a ser usado en email Se usa tambin con el protocolo HTTP
Se pueden transmitir multitud de tipos de archivos siempre que servidor y cliente soporten MIME MIME establece una serie de encabezados que se pueden aadir a los ya existentes para HTTP, y que se pueden usar en las lneas de encabezado de los mensajes HTTP
Mime-version: Versin de MIME (actual 1.0) Content-type: Tipo de MIME para un archivo enviado
jpg tipo MIME image/jpeg
Si un servidor HTTP enva un archivo sin especificar el tipo MIME asociado, puede ocurrir que el navegador web no abra el archivo correctamente porque desconozca la aplicacin que tiene que abrirlo
Servidores Web
Servidor Apache Descripcin
Es el ms usado en Internet Es software libre, gratuito y multiplataforma (Unix, Linux, Windows, Netware, )
Microsoft IIS
Sun Java System Web Server Tomcat
Ngnix
Lighthttp Cherokee
Software libre y gratuito para sistemas Unix, Linux, Windows Consume muy pocos recursos
Consume muy pocos recursos Fcil de configurar (herramienta grfica) Software libre, gratuito y multiplataforma Rpido y muy funcional Software libre, gratuito y multiplataforma
Servidor Apache
Instalacin
apt-get install apache2 Desde el gestor de paquetes Synaptic (paquete apache2) Paquete de ayuda: apt-get install apache2-doc
Probar servidor
http://localhost http://127.0.0.1 Carpeta de raz del sitio: /var/www Fichero por defecto (pgina de inicio del sitio): index.html Desde otro equipo
http://192.168.3.100 http://www.ieselrincon.org
Detener el servicio
Iniciar el servicio Reiniciar el servicio Accin Windows Comando
runlevel 2
ls /etc/rc2.d | grep apache Servicios que arrancan o no de forma automtica en el runlevel 2 que se llamen apache
/etc/apache2/httpd.conf
Despus de la instalacin est vaco Es aconsejable que se edite este archivo para aadir, modificar o eliminar directivas generales del servidor, en lugar de editar apache2.conf Se sabe cuales son las directivas editadas por el administrador
Carpeta sites-available
Archivos de configuracin para servidores virtuales
Editar alguno de los ficheros que incluye el principal Directivas de configuracin bsica
http://httpd.apache.org/docs/2.0/es/mod/directi ves.html
Descripcin
Nombre de equipo y puerto que usa el servidor para identificarse ante los clientes
Ejemplo de uso
ServerName www.aulasri.com:80
ServerRoot
Listen Timeout KeepAlive DocumentRoot DirectoryIndex
ServerRoot /usr/local/apache
Listen 80 Listen 192.168.3.100:8080 Timeout 300 KeepAlive on KeepAlive off DocumenRoot /var/web/ DirectoryIndex index.html home.html index.php default.html NameVirtualHost *:80
NameVirtualHost
Navegadores web
Navegador web Cliente http o cliente del servicio web
Programa cliente web que interpreta los documentos recibidos (generalmente, HTML), como pginas web y los presenta en pantalla mostrando enlaces (usuario interacta para acceder a otros documentos web) Navegador presenta en pantalla: marcos, vietas, colores de fondo, imgenes,
Navegadores web
Navegador Interner Explorer Win Lin SI Comentario
Facilita y acelera la interaccin con otros servicios
Mozilla Firefox
Google Chrome Opera
SI
SI SI
SI
SI SI
Dispone de una gran cantidad de complementos y extensiones que se pueden instalar para realizar tareas adicionales
Ms reciente aparicin Muy funcional y fcil de usar Muy innovador Incluye una funcin de navegacin turbo Acelerar el acceso a algunas pginas web Apariencia esttica muy cuidada
SI NO NO
Parmetros de apariencia
Sirven para cambiar la interfaz de usuario del navegador
Mozilla Firefox en Ubuntu Men Ver
Mostra o no barra de herramientas Aadir o quitar elementos en las barras de herramientas Mostrar o no un panel lateral en el navegador
Ficha Pestaas
Si las ventanas nuevas se abren en nuevas pestaas Si se advierte cuando se van a cerrar varias pestaas, etc.
Ficha Contenido
El tipo, tamao y color de la letra predeterminada y de los enlaces Idioma preferido para ver las pginas web
Parmetros de apariencia
Parmetros de uso
Configurar las acciones que se realizan cuando el navegador est navegando Los sistemas de seguridad y privacidad que se aplican Los complementos que se aaden al navegador Men Editar/Preferencias (Windows: Men Herramientas/Opciones)
Ficha Aplicaciones
Establecer lo que se realiza con cada contenido incluido en una pgina web P.e.: Que se hace por defecto con un archivo de audio (.mp3) Guardarlo, abrirlo con un determinado reproductor de audio, abrirlo con un complemento de Firefox, preguntar que se desea realizar
Ficha Privacidad
Establecer si Firefox debe o no recordar un historial de navegacin Hacer una configuracin personalizada del historial
Ficha Seguridad
Establecer bloqueos sobre sitios considerados peligrosos Advertir cuando un sitio intenta instalar complementos en nuestro equipo Poltica de uso de contraseas para acceso a sitios que la requieran
Ficha Avanzado
Establecer si Firefox se conecta a la red mediante un Proxy o no Si se buscan actualizaciones de Firefox y la operacin que se en realiza en su caso Que tcnicas de cifrado y certificados se usan para acceder a sitios seguros
Complementos
Son software que tratan de ampliar o modificar la funcionalidad de un navegador Firefox permite agregar de forma sencilla una gran variedad de complementos Men Herramientas / Complementos
Extensiones
Sirven para que a travs del navegador se realicen nuevas funciones Live http headers Permite que se puedan capturar las cabeceras de todos los mensajes http
Apariencia
Instalar nuevos temas que modifican la apariencia general de firefox
Pluggins
Para que se puedan abrir correctamente determinados tipos de archivos
S.0.
L L/W W W L
Comentario
Herramienta especfica para configuracin de Apache Herramienta especfica desarrollada en Java para configuracin de Apache Herramienta especfica para controlar y monitorizar Apache Herramienta especfica para configuracin de Apache Herramienta especfica para configuracin y control de Apache En distribuciones Red Hat y Fedora
Suse Paquete de herramientas que puede incluir el mdulo de configuracin de Apache En distribuciones Suse Linux W Herramienta administrativa para configurar y controlar el servidor web IIS Integrada dentro de S.O. Windows
Lighthttpd
L/W
Webmin
Instalar apache / Entrar en webmin / Refresh modules
https://localhost:10000 (root, qwerty)
Webmin
Webmin
En la ventana principal 3 fichas
Global configuration
Configurar parmetros globales de funcionamiento del servicio
Webmin
Redes y direcciones Tipos MIME Usuarios y grupos Varios Programas CGI Archivos de opciones de Por-directorio Configurar mdulos de Apache Editar parmetros definidos Editar archivos de configuracin
Servidor principal
El que atiende las peticiones de los clientes web cuando no se han configurados servidores virtuales por nombre Cuando se instala Apache se configuran los servidores virtuales por nombre
Las opciones que se configuran aqu no tendrn ningn efecto, salvo que se desactiven los servidores virtuales por nombre
Alias y redireccionamiento
Redirigir las peticiones de un cliente HTTP sobre un archivo o carpeta haca otro archivo o carpeta (incluso puede encontrarse fuera del sitio web)
Archivos de bitcora
Especificar archivo que registra los errores del servicio
Opciones de documento
Especificar la carpeta raz donde se almacena el sitio web principal Por defecto /var/www (DocumentRoot) Establecer el nombre de los archivos de configuracin de directorios o carpetas (.htaccess)
Indizado de directorio
Declara los archivos ndice del sitio, pginas por defecto (DirectoryIndex) Establecer opciones relativas a estos archivos
Mostrar directivas
Las que corresponden a las opciones de configuracin del servidor por defecto
La configuracin que se establezca configura un sitio web en el servidor al que se accede desde un cliente mediante:
http://nombre_DNS_Servidor http://direccin_IP_Servidor Nombre_DNS: cualquiera de los nombres DNS que estn registrados para el servidor en la zona DNS a la que pertenezca
Raz de documentos
Carpeta raz del sitio web Debe existir previamente
Todos los cambios realizados en servidor virtual modifican el archivo de configuracin de servidor virtual
/etc/apache2/sites-available/default //este fichero por defecto
Mdulos de Apache
Activacin y configuracin de mdulos adicionales para proporcionar nuevas funcionalidades
Acceso a espacio web (carpetas) personal de usuarios (userdir) donde podrn guardar sus archivos Establecer sistemas de control de acceso al sitio Enlazar con programas que interpretan pginas webs dinmicas (PHP, ASP, )
Los mdulos de Apache deben estar compilados para el SO que corresponda a la instalacin del servidor web Apache Debian/Ubuntu Mdulos instalados en: /usr/lib/apache2/modules/
Extensin .so Los mdulos adicionales son cargados dinmicamente cada ver que se inicia el servidor Deben estar activados y configurados correctamente
Mdulos de Apache
ls -al /usr/lib/apache2/modules http://httpd.apache.org/docs/2.0/es/mod/
/etc/apache2/mods-enabled
Enlaces simblicos a los archivos de la carpeta mods-available Contiene enlace slo a los archivos de los mdulos que estn activados
Desactivar mdulo
a2dismod userdir
Los mdulos deben estar disponibles y el archivo de carga debe existir en la carpeta mods-available Al activar se crean los enlaces necesarios en la carpeta /etc/apache2/mods-enabled Tras activar el mdulo Reiniciar el servidor
Configuracin mdulos
Editar fichero de configuracin del mdulo
/etc/apache2/mods-available/modulo.conf
//Cada usuario del sistema puede tener dentro de su carpeta personal de usuario /home/usuario, una carpeta llamada //public_html donde puede guardar documentos web para su espacio web personal dentro del dominio //El usuario root no puede disponer de este espacio adicional
<Directory /home/*/public_html>
//Esta directiva establece un conjunto de directivas aplicables a todos las carpetas de nombre //public_html, dentro de cualquier carpeta personal de usuario /home/*
AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> </IfModule> Estas son las directivas a tener en cuenta para configurar el servidor si el mdulo est instalado Cada usuario puede guardar en su carpeta public_html documentos html, archivos de imagen, de video, para las pginas web de su espacio personal
Uso mdulos
Da nueva funcionalidad al servidor userdir
Permite que cada usuario de un sistema Linux pueda crear en su carpeta personal del sistema /home/usuario, una carpeta public_html, que ser carpeta raz para su espacio web personal en el sitio web En esa carpeta puede organizar todos los archivos de su espacio web Acceso: http://www.aulasri.com/~usuario/pagina.html ~ Simboliza la ruta /home Se puede crear un alias al usuario
En /etc/apache2/sites-available/default Alias /usuario/ /home/usuario/public_html Reiniciar el servidor http://www.aulasri.com/usuario/pagina.html
Crear en /home/usuario/public_html Escribir una pgina: prueba.html o index.html Entrar: http://www.aulasri.com/~agustin/prueba.html Entrar: http://www.aulasri.com/~agustin Entrar: http://www.aulasri.com/agustin/prueba.html Entrar: http://www.aulasri.com/agustin
Servidores virtuales
Permite que un mismo servidor web pueda trabajar como servidor para varios sitios web Un servidor apache administre los sitios
www.ieselrincon.org www.laspalmas.com www.clubinformatico.es
Las empresas de hosting usan los servidores virtuales para alojar varios sitios web
Servidores virtuales
Tipos
Basado en direcciones IP
Por cada direccin IP del equipo servidor se tendrn un servidor virtual Se necesitan varios adaptadores de red (NIC) O crear varias interfaces virtuales de red sobre un mismo adaptador
Dar una IP a cada una de las interfaces virtuales
Basado en puertos
El servidor web utilizar un puerto de escucha por cada servidor virtual Uno escucha por el puerto 80, otro por el 8080, otro 8081, otro por el 443 (servidor web seguro https),
Basado en nombres
El servidor web puede alojar varios sitios web pertenecientes a distintos dominios Utiliza para todos ellos la misma direccin y el mismo puerto
Servidores virtuales
Basados en puerto (configurando ficheros a mano)
Asegurarse que los puertos estn libres
netstat ano
Se puede copiar el fichero /etc/apache2/sites-available/default para cada nuevo host virtual y modificarlo para adaptarlo
cd /etc/apache2/sites-available cp default sitio1puerto
Comprobar funcionamiento
http://192.168.1.100:8080 http://192.168.1.100:8081 http://192.168.1.100:8082 /usr/sbin/apache2ctl -S
Comprobar configuracin de los host virtuales con la opcin -S del demonio de apache
Servidores virtuales
Basados en nombre
Por defecto, al instalar apache queda configurado para que se puedan utilizar S.V. basados en nombre /etc/apache2/ports
NameVirtualHost *:80 Se pueden crear servidores virtuales basados en nombre, escuchando a los clientes en cualquiera de las direcciones IP del equipo servidor Apache y en el puerto 80 NameVirtualHost 192.168.3.100:80
Aparece un icono para ese servidor virtual (Existing Virtual Host) Clic en el icono Configuracin del servidor virtual Reiniciar servidor Apache
El nombre del servidor virtual debe ser resuelto por algn servidor DNS
Debe resolver la zona correspondiente Debe resolver el nombre del equipo con la IP correspondiente
/etc/apache2/sites-available/www.aulasri.con.conf
En este archivo podemos modificar, aadir o eliminar directivas Si ser cambia Reiniciar apache
Cuando se aaden contenidos al sitio no hay que reiniciar el servidor Probar funcionamiento:
http://www.aulasri.com/pagina.html El servidor DNS debe resolver el nombre
aulasri.com Esa zona debe tener registrado el nombre del servidor con su IP
Control de acceso Contrala la mquina cliente Autentificacin Controla al usuario cliente Apache
1. Control de acceso 2. Autentificacin
Sistemas de autenticacin
Bsica
El usuario introduce nombre y contrasea en el cliente (navegador) Se transmiten sin cifrar o encriptar al servidor
Digest
El usuario introduce nombre y contrasea en el cliente (navegador) Se transmiten cifrados o encriptados al servidor
Por certificado
El cliente dispone de un certificado digital que enva al servidor al conectarse
Autentificacin bsica
Autentificacin para SV www.aulasri.org
/var/www/sitio1/privada Activar el mdulo aut_basic
Webmin / Apache / Global Configuration / Configura Apache Modules / Activar
Autentificacin bsica
Autentificacin bsica
Autentificacin bsica
Comprobar
Se supone ya est creada la carpeta protegida
/var/www/sitio/privada
Autentificacin bsica
Directivas usadas
Allow Permite el acceso de los clientes que tengan las IP o los nombre de dominio indicados Deny Deniega el acceso a los clientes que tengan las IP o los nombre de dominio indicados Order Indica el orden en que se deben ejecutar Allow y Deny
Descripcin
Se permite el acceso a cualquier cliente Se permite el acceso a clientes con direcciones IP que comiencen por 192.168.3 y al que tenga 86.70.89.1
Se permite el acceso a todos los clientes (ya que se ejecuta al final Allow from all)
El protocolo HTTPS
HTTPS: HTTP Secure Protocolo utilizado para conexiones web seguras (comercio electrnico, banca, webmin, ) Cuando se establece por primera vez una conexin con un servidor web seguro, el navegador nos pregunta si queremos instalar un certificado para poder acceder al sitio
La primera vez que nos conectamos a un sitio https nos indica que obtengamos un certificado ste ser usado en sucesivas conexiones para garantizar la identidad del servidor
HTTPS
HTTP + SSL (Secure Socket Layer = Protocolo de Capa de conexin seguro) o HTTP + TLS (Transport Layer Security = Seguridad en la capa de transporte) Se transmiten los mensajes HTTP cifrados y para garantizar la identidad del servidor ante los clientes Puerto de escucha por defecto 443 Protocolo: https://direccin
El protocolo HTTPS
HTTPS garantiza
La confidencialidad
Los mensajes transmitidos estn cifrados
La integridad
Si un mensaje se modifica accidentalmente o intencionadamente, el receptor detecta que se ha producido dicha modificacin
La autenticacin
Se puede asegurar la identidad del servidor y/o del cliente mediante el uso de certificados digitales
El protocolo HTTPS
Para que se pueda usar HTTPS en Apache Activar el mdulo ssl
Webmin / Apache / Global Configuration / Configure Apache Modules / Elegir mdulo ssl / Enable Selected Modules
Para poder crear servidores virtuales https se deben incluir en el archivo /etc/apache2/ports.conf las directivas
<IfModule mod_ssl.c> NameVirtualHost *:443 Listen 443 </IfModule> Ports.conf indica: Si se aade NameVirtualHost *:443, entonces hay que editar: /etc/apache2/sites-available/default-ssl Para poder iniciar bien el servidor HTTPS, primero hay que instalar los certificados
Certificados
Un servidor web HTTPS debe disponer de un certificado para poder establecer conexiones seguras con los clientes Certificado digital o electrnico
Es un documento digital emitido por una entidad Autoridad de Certificacin (AC) que sirve para garantizar la identidad de un usuario en una conexin
Certificado electrnico Garantiza que una persona o empresa es quien dice ser y permite firmar electrnicamente documentos
Soporte fsico (dni electrnico) Archivo en el ordenador
Certificados
Conexin segura
Servidor web debe tener instalado un certificado obtenido de una AC El servidor (con certificado) enva los mensajes firmados con una clave privada La 1 vez que el cliente web (navegador) se conecta con un servidor HTTPS recibe una clave pblica (para descifrar los mensajes enviados por el servidor y verificar su identidad), nos da informacin sobre el certificado correspondiente y nos pide confirmacin sobre si el consideramos vlido el certificado (deseamos usar la clave pblica para conectarnos con el servidor) El cliente cifrar los mensajes con la clave pblica y el servidor los descrifrar con la clave privada Las siguientes conexiones del cliente con el servidor verificarn de forma automtica la identidad del servidor y no nos pedirn autorizacin Los navegadores web disponen de una lista de AC, que les permite establecer conexiones automticas (sin tener que confirmar) con servidores HTTPS, que disponen de un certificado emitido por algunas de esas AC
Autoridades de certificacin
Autoridad de certificacin
Es una entidad considerada de confianza que se encarga de emitir certificados para usuarios que sirvan para garantizar la identidad de stos ante otros usuarios
Se puede generar un certificado autofirmado en un ordenador (programa software), sin que lo haya emitido una AC
Los usuarios difcilmente confiaran en sitios con certificados autofirmados Se utiliza para realizar pruebas con certificados Normalmente hay que pagar para obtener un certificado de una AC (y cumplir unos requisitos)
Autoridades de certificacin
Autoridades de certificacin
A las que se les puede pedir un certificado Verisign GlobalSign CyberTrust RSA Security FNMT
Fbrica Nacional de Moneda y Timbre Se encarga de emitir certificados para que los ciudadanos se identifiquen anta las Administraciones Pblicas, Empresas Pblicas, Universidades, etc DNI electrnico (chip dentro del DNI): Certificado electrnico personal (autentificarse antes administracin pblica, banco, ) AC digital de las cmaras de comercio espaolas Certificado de persona jurdica (gestin de trmites online con la administracin pblica), facturacin electrnica de la empresa, certificado de servidor seguro (demostrar que tu empresa es titular de suweb y poder realizar operaciones en ella de forma segura
Certificado digital
Certificado digital
Archivo en el ordenador (certificado.cer) Tiene dos partes
Clave privada: Slo en tu poder, no se puede duplicar y est protegida por un pin Clave pblica: La conoce el resto de personas y avala que ese certificado digital te pertenece
Firma electrnica
Documento cifrado con clave privada se enva el documento cifrado + la clave pblica Se recibe el documento Se descifra con la clave pblica Se compara con la clave privada
Obtencin de un certificado
Para obtener un certificado de una AC
1. Crear clave privada y un archivo de peticin de firma de certificado 2. Acceder a web de una AC y solicitar certificado (enviar archivo de peticin + clave privada) 3. La AC nos enva un archivo (certificado digital) que podemos instalar para el servidor web, correo electrnico,
Obtencin de un certificado
Certificado autofirmado en Linux
Se puede utilizar en un servidor HTTPS
No ser reconocido por el navegador como emitido por una AC
1.
Instalar openssl
apt-get install openssl
2.
3.
Situarnos en la carpeta donde queremos crear los archivos necesarios para el certificado (/home/agustin/certificados) Generar una clave privada de 4096 bytes
Se almacena en un archivo de claves (server.key) openssl genrsa -des3 -out server.key 4096 Introducir frase de paso (hola)
4.
5.
1. 2. 3. 4.
Si tenemos certificado
Autofirmado o AC
Instalar en Apache para que lo utilice en el servidor HTTPS Comprobar que est activo mdulo ssl de apache Instalacin
1.
Crear carpetas
/etc/apache2/ssl /etc/apache2/ssl/certificado /etc/apache2/ssl/certificado/clave
2. 3. 4.
Copiar el archivo de claves en /etc/apache2/ssl/certificado/clave (server.key) Copiar el archivo de certificado en /etc/apache2/ssl/certificado (server.crt) Crear un servidor virtual para https (que escuche en el puerto 443)
Nombre: www.aulasri.com Carpeta raz del sitio: /var/www/aulasri-ssl
5. 6.
Comprobar que mdulo ssl est instalado Acceder con webmin a las opciones ssl (Seleccionar Servidor virtual / SSL options)
Especificar la ruta de los archivos de certificado y de clave privada
7.
8.
Registro y monitorizacin
Registro (log): Archivo que almacena los errores que se producen en el servidor y los accesos de los clientes Registro de errores
/var/log/apache2/error.log De cada error fecha, hora, gravedad del error, direccin IP dl cliente que provoc el error, el mensaje de error y el nombre del recurso solicitado
Registro de accesos
/var/log/apache2/access.log Monitoriza o registra informacin sobre todas las peticiones de clientes procesadas por el servidor Cada peticin la IP del cliente, fecha, hora y mensaje de peticin del recurso Para cada servidor virtual hay un registro de accesos
other_vhosts_access
Registro y monitorizacin
Registro y monitorizacin