PDF de programación - Apache + SSL

Imágen de pdf Apache + SSL

Apache + SSLgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 17 de Enero del 2018)
389 visualizaciones desde el 17 de Enero del 2018
233,9 KB
13 paginas
Creado hace 17a (17/05/2006)
Apache + SSL

Alejandro Valdés Jimenez

[email protected]

Tabla de contenidos

1. Objetivos.................................................................................................................................................3
2. Introducción ...........................................................................................................................................3
3. SSL ..........................................................................................................................................................3
4. Generación de certificados....................................................................................................................3
4.1. Creando nuestra CA ....................................................................................................................4
4.2. Creando nuestro CSR..................................................................................................................6
4.3. Creando nuestro CRT..................................................................................................................7
5. Servidor web Apache...........................................................................................................................10
5.1. Configuración............................................................................................................................10

ii

1. Objetivos

El alumno al finalizar la experiencia deberá ser capaz de:

• Generar certificados (CSR,CRT)
• Configurar un servidor web seguro
• Verificar como es la comunicación entre el servidor web y un cliente.

2. Introducción

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

El laboratorio se realizará utilizando una máquina con Linux como sistema operativo y GNU/Debian
como distribución. Los paquetes necesarios y que deben estar instalados son:

• openssl
• apache
• apache-common



libapache-mod-ssl

3. SSL

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

4. Generación 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érminos:

• RSA Private Keys: Archivo digital que podemos usar para descifrar mensajes que nos envian. Tiene

una parte pública (que distribuimos con nuestro certificado), que permite a la gente cifrar los mensajes

3

Apache + SSL

que nos envia. Este mecanismo de clave asimétrica nos asegura que los mensajes cifrados con la clave
pública (que distribuimos a mucha gente) sólo pueden ser descifrados con la clave privada (que sólo
conocemos nosotros).

• Certificate Signing Request (CSR): Es un archivo digital que contiene nuestra clave pública 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 certificados (CSR).
• Certificate (CRT): Una vez la CA a firmado el CSR, obtenemos un CRT. Este archivo contiene

nuestra clave pública, nuestro nombre, el nombre del CA, y está 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én en la autenticidad del certificado.

El procedimiento de creación de certificados se puede resumir en la Figura 1.

Figura 1. Generación certificados

4.1. Creando nuestra CA

Existen numerosas CAs, que previo pago pueden firmar nuestro CSR. Estas son muldialmente conocidas
de manera que cualquier cliente podrá conectarse con confianza a nuestro servidor. VeriSign es un
ejemplo de CA.

Para nuestro propósito, crearemos nuestro propia CA, sin embargo para que nuestro certificado tenga
validez enla red debieramos enviar nuestro CSR a un CA válido.

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 Ejemplo 1 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.

Ejemplo 1. Creando nuestro CA

primate:/etc/apache# /usr/lib/ssl/misc/CA.sh -newca
CA certificate filename (or enter to create)

4

Apache + SSL

Making CA certificate ...
Generating a 1024 bit RSA private key
........++++++
..........................++++++
writing new private key to ’./demoCA/private/./cakey.pem’
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
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) [CL]:CL
State or Province Name (full name) [Talca]:Talca
Locality Name (eg, city) [Talca]:Talca
Organization Name (eg, company) [Universidad de Talca]:Universidad de Talca
Organizational Unit Name (eg, section) [DITyM - RSS]:DITyM - RSS
Common Name (eg, YOUR name) []:Autoridad Certificadora UTALCA
Email Address [[email protected]]:[email protected]

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

Serial Number: 0 (0x0)
Validity

Not Before: May 17 19:09:40 2006 GMT
Not After : May 16 19:09:40 2009 GMT

Subject:

countryName
stateOrProvinceName
organizationName
organizationalUnitName
commonName
emailAddress
X509v3 extensions:

= CL
= Talca
= Universidad de Talca
= DITyM - RSS
= Autoridad Certificadora UTALCA
= [email protected]

X509v3 Basic Constraints:

CA:FALSE

Netscape Comment:

OpenSSL Generated Certificate

X509v3 Subject Key Identifier:

56:F2:B7:3B:61:C8:DD:D8:19:4C:40:0C:B5:03:4F:E0:03:9B:72:C7

X509v3 Authority Key Identifier:

keyid:56:F2:B7:3B:61:C8:DD:D8:19:4C:40:0C:B5:03:4F:E0:03:9B:72:C7

5

Apache + SSL

Certificate is to be certified until May 16 19:09:40 2009 GMT (1095 days)

Write out database with 1 new entries
Data Base Updated

Al ejecutar el script, nos hará 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á la clave para acceder a la

clave privada (la clave privada se guarda cifrada).

• Cierta información para añadir al certificado, código del país, provincia, localidad, etc.

Una vez terminada la ejecución del script podemos ver en la carpeta actual que aparece una nueva
carpeta, demoCA, la que tiene la siguiente estructura:

-rw-r--r-- 1 root root 3376 2006-05-17 15:09 cacert.pem
-rw-r--r-- 1 root root 745 2006-05-17 15:09 careq.pem
drwxr-xr-x 2 root root 4096 2006-05-17 15:08 certs
drwxr-xr-x 2 root root 4096 2006-05-17 15:08 crl
-rw-r--r-- 1 root root 146 2006-05-17 15:09 index.txt
-rw-r--r-- 1 root root
-rw-r--r-- 1 root root
drwxr-xr-x 2 root root 4096 2006-05-17 15:09 newcerts
drwxr-xr-x 2 root root 4096 2006-05-17 15:08 private
-rw-r--r-- 1 root root
-rw-r--r-- 1 root root

3 2006-05-17 15:09 serial
3 2006-05-17 15:08 serial.old

21 2006-05-17 15:09 index.txt.attr

0 2006-05-17 15:08 index.txt.old

El archivo cacert.pem contiene el certificado de la CA, el que luego usaremos para firmar nuesto CSR.
Los subdirectorios están vacios, a excepción de private, donde encontramos el archivo cakey.pem,el cual
es la clave del CA.

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á triple-DES y en formato PEM.
Crearemos una carpeta para alojar los archivos, la llamaremos cert. Al ejecutar el script se nos pedirá
ingresar una pass phrase y luego confirmarla.

primate:~/cert# openssl genrsa -des3 -out servidor-prueba.key 1024
Generating RSA private key, 1024 bit long modulus

6

..................................................++++++
....................++++++
e is 65537 (0x10001)
Enter pass phrase for servidor-prueba.key:
Verifying - Enter pass phrase for servidor-prueba.key:

Apache + SSL

Una vez creada la clave del servidor, generamos el CSR usando la clave generada anteriormente.

primate:~/cert# openssl req -new -days 365 -key servidor-prueba.key -out servidor-prueba.csr
Enter pass phrase for servidor-prueba.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,
  • Links de descarga
http://lwp-l.com/pdf8351

Comentarios de: Apache + SSL (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad