HTTP y HTTPS - 8-Zone | SI SE PUEDE IMAGINAR… SE … · 2008-08-05 · • Dar funcionalidad al...

16
Curso: Sistemas Operativos II Plataforma: Linux HTTP y HTTPS La transferencia de hipertexto entre ordenadores basado en la arquitectura cliente/servidor se realiza por medio de estos conceptos, al configurar estos servidores nos sirven para dar seguridad a los clientes que ingresen a un sitio Web propio a través de firma digital o una entidad certificadora, con el fin de darles confianza.

Transcript of HTTP y HTTPS - 8-Zone | SI SE PUEDE IMAGINAR… SE … · 2008-08-05 · • Dar funcionalidad al...

Curso: Sistemas Operativos II Plataforma: Linux

HTTP y HTTPS

La transferencia de hipertexto entre ordenadores basado en la arquitectura cliente/servidor

se realiza por medio de estos conceptos, al configurar estos servidores nos sirven para dar

seguridad a los clientes que ingresen a un sitio Web propio a través de firma digital o una entidad

certificadora, con el fin de darles confianza.

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

INDICE

TEMA

Introducción ……………………………………………………………………

Objetivos ……………………

Marco Teórico ……………………………………………………………………

Configuración …………………………………………………………………...

Conclusiones ……………………………………………………………………

Bibliografía ……………………………………………………………………

Recomendaciones ………………………………………………………….

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

No. PAGINA

…………………………………………………………………… 3

…………………………………………………………………… 4

…………………………………………………………………… 5

…………………………………………………………………... 6

…………………………………………………………………… 14

…………………………………………………………………… 15

…………………………………………………………. 16

2

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

INTRODUCCIO

Las transacciones que se realizan a diario en la red de internet son sumamente

abundantes, toda la información que se maneja en un esquema de cliente/servidor se realiza

mediante repticiones y respuestas a los distintos servidores, por ende l

dar a un cliente dentro de un sitio es muy import

a la hora de realizar actividades de transacción.

nos brinda la funcionalidad de un servid

ejecutadas bajo http no son seguras, por ello

con certificados digitales que permite ofrecer conexiones al

segura.

El concepto de Mod_ssl se basa en que es

sockets layer” (ssl) y “transport layer security” (tls) entre un servidor d

browsers), este hace uso de certificados digitales y firmas en donde si s

digital local debe ser aceptado con los clientes de Web (Web browsers) sin mostrar el mensaje a

los usuarios, independientemente

certificado digitalmente firmado implica con

quien tu dices ser.

El presente material investigativo

la forma en que se debe configurar estos

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

INTRODUCCION

Las transacciones que se realizan a diario en la red de internet son sumamente

abundantes, toda la información que se maneja en un esquema de cliente/servidor se realiza

mediante repticiones y respuestas a los distintos servidores, por ende la seguridad que se le pueda

dar a un cliente dentro de un sitio es muy importante, este factor es decisivo para muchos clientes

a la hora de realizar actividades de transacción. El solo hecho de instalar y configurar Apache ya

nos brinda la funcionalidad de un servidor http, ahora bien se dice que las transacciones

ejecutadas bajo http no son seguras, por ello juntos Apache y mod_ssl da un sistema de seguridad

n certificados digitales que permite ofrecer conexiones al servidor de web en forma codificada y

l concepto de Mod_ssl se basa en que es un modulo de Apache que da soporte al “secure

sockets layer” (ssl) y “transport layer security” (tls) entre un servidor de Web y clientes (Web

browsers), este hace uso de certificados digitales y firmas en donde si se genera

ser aceptado con los clientes de Web (Web browsers) sin mostrar el mensaje a

, independientemente si deberían confiar en tu certificado o no ahora bien e

certificado digitalmente firmado implica confianza a los clientes que conecta a tu sitio que tu eres

El presente material investigativo muestra paso a paso y en detalle de una manera simple

a en que se debe configurar estos servidores sobre una plataforma Linux.

3

Las transacciones que se realizan a diario en la red de internet son sumamente

abundantes, toda la información que se maneja en un esquema de cliente/servidor se realiza

que se le pueda

para muchos clientes

El solo hecho de instalar y configurar Apache ya

or http, ahora bien se dice que las transacciones

untos Apache y mod_ssl da un sistema de seguridad

servidor de web en forma codificada y

un modulo de Apache que da soporte al “secure

e Web y clientes (Web

e genera un certificado

ser aceptado con los clientes de Web (Web browsers) sin mostrar el mensaje a

confiar en tu certificado o no ahora bien el

fianza a los clientes que conecta a tu sitio que tu eres

muestra paso a paso y en detalle de una manera simple

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

OBJETIVOS

General:

• Configurar e instalar eficientemente los servidores de HTTP y HTTPS.

Específicos:

• Conocer e implementar la forma de configurar el servidor en la distribución kubuntu.

• Aprender a utilizar el servidor y sus servicios.

• Dar funcionalidad al servidor y hacer uso de el.

• Generar un certificado digital.

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

Configurar e instalar eficientemente los servidores de HTTP y HTTPS.

la forma de configurar el servidor en la distribución kubuntu.

Aprender a utilizar el servidor y sus servicios.

servidor y hacer uso de el.

Generar un certificado digital.

4

la forma de configurar el servidor en la distribución kubuntu.

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

Http y Https:

Historia y Definición:

El servidor HTTP Apache

GNU/Linux), Windows, Macintosh y otras

Apache es el Servidor Web mas comunmente utilizado en sistemas GNU/Linux. Los

Servidores Web son usados para servir Páginas Web solicitadas por ordenadores clientes. Los

clientes típicamente solicitan ver Páginas Web usando un Navegador como

Mozilla.

El protocolo más comunmente utilizado para ver páginas Web es el Hyper Text Transfer

Protocol (HTTP). Protocolos como el Hyper Text Transfer Protocol sobre Secure Sockets Layer

(HTTPS), y File Transfer Protocol (FTP), un protocolo para

soportados.

Los servidores web Apache a menudo se usan en combinación con el motor de bases de

datos MySQL, el lenguaje de scripting

Perl. Esta configuración se denomina LAMP (Linux, Apache, MySQL y Perl/Python/PHP) y conforma

una potente y robusta plataforma para el desarrollo y distribución de aplicaciones basadas en la

web.

Archivos de Configuració

httpd.conf

/etc/apache2/sites

/etc/apache2/ports.conf

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

:

TP Apache es un servidor de código abierto para plataformas Unix (BSD,

), Windows, Macintosh y otras.

Apache es el Servidor Web mas comunmente utilizado en sistemas GNU/Linux. Los

Servidores Web son usados para servir Páginas Web solicitadas por ordenadores clientes. Los

clientes típicamente solicitan ver Páginas Web usando un Navegador como Firefox, Opera

El protocolo más comunmente utilizado para ver páginas Web es el Hyper Text Transfer

Protocol (HTTP). Protocolos como el Hyper Text Transfer Protocol sobre Secure Sockets Layer

(HTTPS), y File Transfer Protocol (FTP), un protocolo para subir y descargar archivos, también son

Los servidores web Apache a menudo se usan en combinación con el motor de bases de

, el lenguaje de scripting PHP, y otros lenguajes de scripting populares como

n se denomina LAMP (Linux, Apache, MySQL y Perl/Python/PHP) y conforma

una potente y robusta plataforma para el desarrollo y distribución de aplicaciones basadas en la

ón:

archivo de configuración del servidor HTTP

/etc/apache2/sites-available/default

/etc/apache2/ports.conf

5

formas Unix (BSD,

Apache es el Servidor Web mas comunmente utilizado en sistemas GNU/Linux. Los

Servidores Web son usados para servir Páginas Web solicitadas por ordenadores clientes. Los

Opera, o

El protocolo más comunmente utilizado para ver páginas Web es el Hyper Text Transfer

Protocol (HTTP). Protocolos como el Hyper Text Transfer Protocol sobre Secure Sockets Layer

subir y descargar archivos, también son

Los servidores web Apache a menudo se usan en combinación con el motor de bases de

, y otros lenguajes de scripting populares como Python y

n se denomina LAMP (Linux, Apache, MySQL y Perl/Python/PHP) y conforma

una potente y robusta plataforma para el desarrollo y distribución de aplicaciones basadas en la

[ 1 ]

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

CONFIGURACION

Instalación A continuación instalarem

distribución kubuntu de los sistemas

Para instalar apache 2 tecleamos desde consola

#SUDO APT

Al finalizar el proceso anterior se

dependencias.

Para comprobar si nos levanto el servicio, abrimos un explorador

que se tenga disponible) y tecleamos en el área de

Si la instalación se realizo de manera correcta se

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

CONFIGURACION HTTP

remos un servidor http el cual será apache2 esto lo haremos en el

de los sistemas linux.

Para instalar apache 2 tecleamos desde consola el siguiente comando:

SUDO APT-GET INSTALL APACHE2

Al finalizar el proceso anterior se nos instalara el servidor http apache2 con todas sus

ara comprobar si nos levanto el servicio, abrimos un explorador ( firefox, konqueror o el

tenga disponible) y tecleamos en el área de dirección URL lo siguiente:

HTTP://LOCALHOST/

Si la instalación se realizo de manera correcta se nos aparece algo como lo siguiente

6

apache2 esto lo haremos en el la

s instalara el servidor http apache2 con todas sus

firefox, konqueror o el

nos aparece algo como lo siguiente

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

configuración Apache2 posee un comando llamado

terminación de Apache el cual hace uso de lo

APACHE2CTL START : I APACHE2CTL STOP : T APACHE2CTL RESTART

Al momento de ejecutar cualquier variación de

de configuración de Apache, httpd.conf

Después de la instalación inicial el archivo

de ejecución, sin embargo, en ocasiones es necesario modificar ciertos parámetros,

inclusive las demás secciones de

Agregar una Pagina web Si queremos agregarle una nueva pagina a nuestro servidor http, incluimos la pagina

index con todos los archivos y directorios que utilice al director

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

Apache2 posee un comando llamado apache2ctl, el cual facilita el arranque y

Apache el cual hace uso de los siguientes comandos:

INICIA EL SERVIDOR DE PÁGINAS TERMINA EL SERVIDOR APACHE

CTL RESTART : RE-INICIALIZA EL PROCESO APACHE

Al momento de ejecutar cualquier variación de apachectl, se lee el archivo princip

httpd.conf ubicado en /etc/apache2/httpd.conf

Después de la instalación inicial el archivo httpd.conf contiene valores

embargo, en ocasiones es necesario modificar ciertos parámetros,

as demás secciones de esta guía se basan en cambios significantes a este archivo.

le una nueva pagina a nuestro servidor http, incluimos la pagina

todos los archivos y directorios que utilice al directorio /var/www/

7

, el cual facilita el arranque y

, se lee el archivo principal

contiene valores razonables

embargo, en ocasiones es necesario modificar ciertos parámetros,

a se basan en cambios significantes a este archivo.

le una nueva pagina a nuestro servidor http, incluimos la pagina

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

CONFIGURACION HTTPS

Lo primero que realizamos es habilitar el modulo

característica al servidor Apache2, este modulo se encuentra disponible en el siguiente paquete

apache2-common, para ello ejecutamos e

Luego lo que realizamos fue generar una solicitud de firma de certificado, para ello debemos

generar nuestra propia clave, para ello ejecutamos el siguiente comando:

OPENSSL GENRSA

con lo que obtenemos la siguiente salida:

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

CONFIGURACION HTTPS

Lo primero que realizamos es habilitar el modulo mod_ssl el cual añade una importante

característica al servidor Apache2, este modulo se encuentra disponible en el siguiente paquete

, para ello ejecutamos el siguiente comando:

SUDO A2ENMOD SSL

lo que realizamos fue generar una solicitud de firma de certificado, para ello debemos

generar nuestra propia clave, para ello ejecutamos el siguiente comando:

OPENSSL GENRSA -DES3 -OUT SERVER.KEY 1024

la siguiente salida:

8

el cual añade una importante

característica al servidor Apache2, este modulo se encuentra disponible en el siguiente paquete

lo que realizamos fue generar una solicitud de firma de certificado, para ello debemos

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

Ahora introducimos nuestra contraseña, esta por motivos de seguridad debe tener al

menos 8 caracteres, pero el mínimo permitido es de 4 caracteres y debe incluir caracteres y

símbolos especiales por motivos

escribiéndola nuevamente, al llenar los prerrequisitos correspondientes nuestra clave del servidor

se generará y se almacenará en el siguiente archivo

La contraseña aplicada es

Si por el contrario no queremos aplicar una llave segura, aplicamos el siguiente comando:

OPENSSL RSA

de haber seleccionado este c

archivo server.key.insecure.

Cuando le damos el openssl req server, luego nos pide que ingresemos el nombre de la región utilizando el código de 2 letras, en

este caso es GT (Guatemala), luego me pide

Luego se nos pide el nombre de la ciudad e ingresamos

compañía u organización, ingresamos

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

Ahora introducimos nuestra contraseña, esta por motivos de seguridad debe tener al

menos 8 caracteres, pero el mínimo permitido es de 4 caracteres y debe incluir caracteres y

de seguridad, luego debemos confirmar nuestra contraseña

escribiéndola nuevamente, al llenar los prerrequisitos correspondientes nuestra clave del servidor

se generará y se almacenará en el siguiente archivo server.key.

La contraseña aplicada es @dministr@dor

Si por el contrario no queremos aplicar una llave segura, aplicamos el siguiente comando:

OPENSSL RSA -IN SERVER.KEY -OUT SERVER.KEY.INSECURE

de haber seleccionado este comando la clave insegura se almacenara bajo la siguiente

openssl req -new -key server.key -out server.csr ingresamos una frase para el

server, luego nos pide que ingresemos el nombre de la región utilizando el código de 2 letras, en

, luego me pide el nombre del estado, para este caso es

Luego se nos pide el nombre de la ciudad e ingresamos CIUDAD, luego nos pide el nombre de la

compañía u organización, ingresamos Grupo 11, luego se nos pide un nombre y correo asociado.

9

Ahora introducimos nuestra contraseña, esta por motivos de seguridad debe tener al

menos 8 caracteres, pero el mínimo permitido es de 4 caracteres y debe incluir caracteres y

de seguridad, luego debemos confirmar nuestra contraseña

escribiéndola nuevamente, al llenar los prerrequisitos correspondientes nuestra clave del servidor

Si por el contrario no queremos aplicar una llave segura, aplicamos el siguiente comando:

omando la clave insegura se almacenara bajo la siguiente

na frase para el

server, luego nos pide que ingresemos el nombre de la región utilizando el código de 2 letras, en

el nombre del estado, para este caso es Guatemala, , luego nos pide el nombre de la

, luego se nos pide un nombre y correo asociado.

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

10

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

Luego ingresamos los atributos adicionales que se escribirán en la petición del certificado e

ingresamos @administr@dor.

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

go ingresamos los atributos adicionales que se escribirán en la petición del certificado e

11

go ingresamos los atributos adicionales que se escribirán en la petición del certificado e

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

ahora debemos generar un certificado autofirmado ejecutando el siguiente comando

OPENSSL X509 –REQ –DAYS

ahora debemos modificar el siguiente archivo

siguientes líneas, al final del archivo.

<VirtualHost *:443>

DocumentRoot /var/www

SSLEngine on

SSLOptions +FakeBasicAuth +ExportCe

SSLCertificateFile /etc/ssl/certs/server.crt

SSLCertificateKeyFile /etc/ssl/private/server.key

</VirtualHost>

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

ahora debemos generar un certificado autofirmado ejecutando el siguiente comando

DAYS 365 –IN SERVER.CSR –SIGNKEY SERVER.KEY –OUT SERVER

ahora debemos modificar el siguiente archivo /etc/apache2/sites-available/default

siguientes líneas, al final del archivo.

<VirtualHost *:443>

DocumentRoot /var/www

SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire

SSLCertificateFile /etc/ssl/certs/server.crt

SSLCertificateKeyFile /etc/ssl/private/server.key

12

ahora debemos generar un certificado autofirmado ejecutando el siguiente comando

SERVER.CRT

available/default agregando las

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

Ahora debemos modificar el siguiente archivo

escribir las siguientes líneas que harán que el https escuche en el puerto 443.

Luego de que hemos instalado el certificado, debemos reiniciar nuestro servidor web bajo el

siguiente comando:

SUDO

y con ello se da por concluido la c

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

hora debemos modificar el siguiente archivo /etc/apache2/ports.conf, lo que debemos hacer es

ientes líneas que harán que el https escuche en el puerto 443.

LISTEN 443

Luego de que hemos instalado el certificado, debemos reiniciar nuestro servidor web bajo el

SUDO /ETC/INIT.D/APACHE2 RESTART

y con ello se da por concluido la configuración del servidor https.

13

lo que debemos hacer es

Luego de que hemos instalado el certificado, debemos reiniciar nuestro servidor web bajo el

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

CONCLUSIONES

En base a lo anteriormente expuesto se concluye lo siguiente:

• Que para poder activar o desactivar el servidor http solamente es necesario escribi

servidor e indicar la acció

iniciarlo respectivamente.

• Que para generar una firma digital es necesario que se arranque el servidor de apache

para generar los archivos de certificado digital que se generan a través del comando

openssl.

• Para dar utilidad al servicio

lo cual antes de ingresar nos preguntara si aceptamos el certificado

anteriores se describieron

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

CONCLUSIONES

En base a lo anteriormente expuesto se concluye lo siguiente:

ara poder activar o desactivar el servidor http solamente es necesario escribi

ón a realizar como: stop o start, que son para detener el servicio o

iniciarlo respectivamente.

ara generar una firma digital es necesario que se arranque el servidor de apache

para generar los archivos de certificado digital que se generan a través del comando

r utilidad al servicio https debemos ingresar a una página del servidor de archivos,

lo cual antes de ingresar nos preguntara si aceptamos el certificado que en los pasos

anteriores se describieron.

14

ara poder activar o desactivar el servidor http solamente es necesario escribir el

art, que son para detener el servicio o

ara generar una firma digital es necesario que se arranque el servidor de apache

para generar los archivos de certificado digital que se generan a través del comando

gina del servidor de archivos,

que en los pasos

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

TUTORIAL DESARROLLADO POR

Carlos Enrique Rodas Gá

Miguel Enrique Guerra Connor

Vinicio Rodolfo Miranda Orozco

BIBLIOGRAFIA

La sección conceptual de este documento fue investigada bajo las siguientes fuentes

bibliográficas.

Motor de Búsqueda:

www.google.com.gt

Sitios Virtuales Consultados:

[1] http://es.wikipedia.org/wiki/Servidor_HTTP_Apache

[2] https://help.ubuntu.com/ubuntu/serverguide/es/httpd.html

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

TUTORIAL DESARROLLADO POR

Carlos Enrique Rodas Gálvez 2002-12383

Miguel Enrique Guerra Connor 2002-17739

Vinicio Rodolfo Miranda Orozco 2002-12355

BIBLIOGRAFIA

La sección conceptual de este documento fue investigada bajo las siguientes fuentes

http://es.wikipedia.org/wiki/Servidor_HTTP_Apache

https://help.ubuntu.com/ubuntu/serverguide/es/httpd.html

15

La sección conceptual de este documento fue investigada bajo las siguientes fuentes

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

RECOMENDACIONES

En base a la experiencia que se deriva del equipo de implementación se plantean unas

recomendaciones básicas que deben ser tomadas en cuenta para ten

e implementación.

• Navegar en una f

encriptados.

• Hacer copia de se

Apache.

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas

RECOMENDACIONES

En base a la experiencia que se deriva del equipo de implementación se plantean unas

recomendaciones básicas que deben ser tomadas en cuenta para tener una óptima

forma https, porque es una forma segura y los datos

eguridad de los archivos que se vayan a modificar d

16

En base a la experiencia que se deriva del equipo de implementación se plantean unas

configuración

s viajan

del servidor