PDF de programación - Apache2 + SSL

Imágen de pdf Apache2 + SSL

Apache2 + SSLgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 31 de Octubre del 2017)
154 visualizaciones desde el 31 de Octubre del 2017
202,0 KB
17 paginas
Creado hace 6a (08/04/2013)
Apache2 + SSL

Alejandro Vald´es Jimenez

avaldes@utalca.cl

1

´Indice

1. Objetivos

2. Introducci´on

3. SSL - Secure Sockets Layer

4. Gesti´on de certificados

4.1. Creando nuestro CA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2. Creando nuestro CSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3. Creando nuestro CRT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5. Apache

3

3

3

4

4

7

8

12

5.1. Preparando el entorno de pruebas . . . . . . . . . . . . . . . . . . . . . . . .

13

EIBI-UTALCA

Apache2 + SSL

2

1. Objetivos

El alumno al finalizar la experiencia deber´a ser capaz de:

Generar certificados (CSR,CRT)

Configurar un servidor web seguro

Verificar como es la comunicaci´on entre el servidor web y un cliente.

2.

Introducci´on

En esta experiencia veremos como generar los certificados digitales para permitir la comu-
nicaci´on de segura entre un servidor web (Apache) y un cliente cualquiera (Firefox, IExplorer,
etc). Realizando algunas pruebas con ethereal vamos comprobar que la informaci´on que viaja
entre el cliente y el servidor, una vez establecida la conexi´on viaja en modo seguro, lo que
garantiza la confidencialidad de los datos.

El laboratorio se realizar´a utilizando una m´aquina con Linux como sistema operativo y
GNU/Debian7 como distribuci´on. Los paquetes necesarios y que deben estar instalados son:

apache2

apache2-common

ssl-cert

openssl:

3. SSL - Secure Sockets Layer

Secure Sockets Layer (SSL) proporciona autenticaci´on y privacidad de la informaci´on
entre extremos sobre Internet mediante el uso de criptograf´ıa. Habitualmente, solo el servi-
dor es autenticado (es decir, se garantiza su identidad) mientras que el cliente se mantiene
sin autenticar; la autenticaci´on mutua requiere un despliegue de infraestructura de claves
p´ublicas (o PKI) para los clientes. Los protocolos permiten a las aplicaciones cliente-servidor
comunicarse de una forma dise˜nada para prevenir escuchas, la falsificaci´on de la identidad
del remitente y mantener la integridad del mensaje.

EIBI-UTALCA

Apache2 + SSL

3

4. Gesti´on de certificados

Trabajar con SSL nos permite que todos los datos que se transfieren entre el cliente y el
servidor vayan cifrados. Antes de comenzar el trabajo, debemos entender algunos t´erminos:

RSA Private Keys: Archivo digital que podemos usar para descifrar mensajes que nos
envian. Tiene una parte p´ublica (que distribuimos con nuestro certificado), que permite
a la gente cifrar los mensajes que nos envia. Este mecanismo de clave asim´etrica nos
asegura que los mensajes cifrados con la clave p´ublica (que distribuimos a mucha gente)
s´olo pueden ser descifrados con la clave privada (que s´olo conocemos nosotros).

Certificate Signing Request (CSR): Es un archivo digital que contiene nuestra
clave p´ublica y nuestro nombre. Nos sirve para ser enviado al CA para que nos firme
y acredite.

Certification Authority (CA): Entidad de confianza encargada de firmar certifica-
dos (CSR).

Certificate (CRT): Una vez la CA a firmado el CSR, obtenemos un CRT. Este archivo
contiene nuestra clave p´ublica, nuestro nombre, el nombre del CA, y est´a firmado
digitalmente por la CA. De esta forma otras entidades pueden verificar esta firma para
comprobar la veracidad del certificado. Es decir, si obtenemos un certificado que esta
firmado por una CA que nosotros consideramos de confianza, podemos confiar tambi´en
en la autenticidad del certificado.

El procedimiento de creaci´on de certificados se puede resumir en la figura 1.

Figura 1: Generaci´on de certificados.

4.1. Creando nuestro CA

Existen numerosas CAs, que previo pago pueden firmar nuestro CSR. Estas son muldial-
mente conocidasde manera que cualquier cliente podr´a conectarse con confianza a nuestro
servidor. VeriSign es un ejemplo de CA.

EIBI-UTALCA

Apache2 + SSL

4

Para nuestro prop´osito, crearemos nuestro propia CA, sin embargo para que nuestro

certificado tenga validez en la red debieramos enviar nuestro CSR a un CA v´alido.

Para crear los certificados necesitamos tener instalado el paquete openssl, el que nos

provee de un script para hacer nuestro trabajo: /usr/lib/ssl/misc/CA.sh

El siguiente ejemplo muestra los pasos como crear nuestro CA. Debe ejecutar el script
como superusuario. La ruta puede variar pero por orden es mejor hacerlo como en el ejemplo.

root@debian:/etc/apache2# /usr/lib/ssl/misc/CA.sh -newca
CA certificate filename (or enter to create)

Making CA certificate ...
Generating a 2048 bit RSA private key
..............................................................+++
.......................+++
writing new private key to ’./demoCA/private/./cakey.pem’
Enter PEM pass phrase: <Ingresar una clave>
Verifying - Enter PEM pass phrase: <Repetir la clave>
-----
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.
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) [AU]:CL
State or Province Name (full name) [Some-State]:Talca
Locality Name (eg, city) []:Talca
Organization Name (eg, company) [...]:Universidad de Talca
Organizational Unit Name (...) []:Escuela de Ingenier´ıa en Bioinform´atica
Common Name (e.g. server FQDN or YOUR name) []:Autoridad Certificadora EIBI
Email Address []:avaldes@utalca.cl

Please enter the following ’extra’ attributes
to be sent with your certificate request
A challenge password []: <Enter>
An optional company name []: <Enter>
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/./cakey.pem:
Check that the request matches the signature

EIBI-UTALCA

Apache2 + SSL

5

Signature ok
Certificate Details:

Serial Number:

a1:1e:7e:ba:8d:88:e3:bf

Validity

Not Before: Apr 5 13:14:12 2013 GMT
Not After : Apr 4 13:14:12 2016 GMT

Subject:
countryName
stateOrProvinceName
organizationName
organizationalUnitName
commonName
emailAddress
X509v3 extensions:
X509v3 Subject Key Identifier:

= CL
= Talca
= Universidad de Talca
= Escuela de Ingenier´ıa en Bioinform´atica
= Autoridad Certificadora EIBI
= avaldes@utalca.cl

E5:A6:FA:38:63:74:B1:9A:38:C2:E9:97:D2:32:B1:11:DA:73:FA:6C

X509v3 Authority Key Identifier:

keyid:E5:A6:FA:38:63:74:B1:9A:38:C2:E9:97:D2:32:B1:11:DA:73:FA:6C

X509v3 Basic Constraints:

CA:TRUE

Certificate is to be certified until Apr 4 13:14:12 2016 GMT (1095 days)

Write out database with 1 new entries
Data Base Updated

Al ejecutar el script, nos har´a las siguientes preguntas:

Nombre del certificado de la CA o que pulsemos <Enter> para crearlo. En nuestro
caso pulsamos <Enter> para crear uno nuevo.

Una <pass phrase>, que nos vuelve a preguntar para confirmarla. Esta ser´a la clave
para acceder a la clave privada (la clave privada se guarda cifrada).

Cierta informaci´on para a˜nadir al certificado, c´odigo del pa´ıs, provincia, localidad, etc.

Una vez terminada la ejecuci´on del script podemos ver en el directorio actual que aparece

una nueva carpeta, demoCA, la que tiene la siguiente estructura:

EIBI-UTALCA

Apache2 + SSL

6

root@debian:/etc/apache2/demoCA# ls -l
total 40
-rw-r--r-- 1 root root 4848 abr 5 10:14 cacert.pem
-rw-r--r-- 1 root root 1143 abr 5 10:14 careq.pem
drwxr-xr-x 2 root root 4096 abr 5 10:10 certs
drwxr-xr-x 2 root root 4096 abr 5 10:10 crl
-rw-r--r-- 1 root root
-rw-r--r-- 1 root root
-rw-r--r-- 1 root root
drwxr-xr-x 2 root root 4096 abr 5 10:14 newcerts
drwxr-xr-x 2 root root 4096 abr 5 10:10 private
-rw-r--r-- 1 root root

216 abr 5 10:14 index.txt

17 abr 5 10:14 serial

21 abr 5 10:14 index.txt.attr

0 abr 5 10:10 index.txt.old

4.2. Creando nuestro CSR

Ahora crearemos nuestro CSR, el cual deber´ıa firmar un autentico CA, pero en este

caso lo firmaremos nosotros con nuestra propia CA que generamos anteriormente.

Primero, creamos la clave para nuestro servidor Apache, la clave ser´a triple-DES y
en formato PEM. Crearemos una carpeta para alojar los archivos, la llamaremos cert. Al
ejecutar el script se nos pedir´a ingresar una pass phrase y luego confirmarla.

root@debian:~/cert# openssl genrsa -des3 -out midominio.cl.key 1024
Generating RSA private key, 1024 bit long modulus
..................++++++
.....++++++
e is 65537 (0x10001)
Enter pass phrase for midominio.cl.key:
Verifying - Enter pass phrase for midominio.cl.key:

root@debian:~/cert# ls -l
total 4
-rw-r--r-- 1 root root 963 abr 5 11:42 midominio.cl.key

Una vez creada la clave del servidor, generamos el CSR usando la clave generada ante-

riormente.

EIBI-UTALCA

Apache2 + SSL

7

root@debian:~/cert# openssl req -new -days 365 -key midominio.cl.key

-out midominio.cl.csr

Enter pass phrase for midominio.cl.key:
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.
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) [AU]:CL
State or Province Name (full name) [Some-State]:Talca
Locality Name (eg, city) []:Talca
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Particular
Organizational Unit Name (eg, section) []:Particular
Common Name (e.g. server FQDN or YOUR name) []:midominio.cl
Email Address []:avaldes@utalca.cl

Please enter the following ’extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
root@debian:~/cert# ls -l
total 8
-rw-r--r-- 1 root root 708 abr 5 11:49 midominio.cl.csr
-rw-r--r-- 1 root root 963 abr 5 11:45 midominio.cl.key

Lo primero que nos pedir´a ser´a la pass phrase que pusimos a la clave en el punto anterior.
Luego nos pedir´a los datos que queremos agregar a nuestro certificado. Aqu´ı, cuando nos
consulte
  • Links de descarga
http://lwp-l.com/pdf7340

Comentarios de: Apache2 + SSL (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad