You are on page 1of 12

Manual creado por: Fabio H. Cern, Alberto Balczar R.

Como crear certificados digitales con OpenSSL1


Por medio de este tutorial se pretende configurar un servidor web localmente para que tenga conexiones seguras mediante OpenSSL, se requiere para este ejemplo que el servidor local haga las funciones de entidad certificadora o CA, probar que localmente se puede ser entidad CA y servidor web con datos diferentes entre CA y servidor web y probar el canal en claro con un sniffer para demostrar que los datos viajan cifrados.

Este manual se realiz con Ubuntu

PASO 1: Verificacin de Apache y OpenSSL.


Se verifica que OpenSSL est instalado correctamente y que el servicio de apache este corriendo. $ openssl version $ /etc/init.d/apache2 status

PASO 2: Generar llave en SSL


Con la siguiente instruccin se genra la clave con encripcion des3 y con una longitud de 1024, se digita el passwrd que se utilizara y se verifica en la carpeta que se gener efectivamente la clave. $ sudo openssl genrsa -des3 -out server.key 1024

Copiado de http://www.binaryti.com/2011/09/certificados-digitales-con-openssl.html

pg. 1

Manual creado por: Fabio H. Cern, Alberto Balczar R.

PASO 3: Crear peticin de firma del certificado CSR


Se crea una nueva peticin de firma del certificado creado a travs de la siguiente instruccin. $ sudo openssl req -new -key server.key -out server.csr reg: Request para el certificado new: nueva peticin key: Archivo del que se leer la llave uot: Archivo de peticin generado

Ac se evidencia los parmetros establecidos como ciudad, nombre del certificado, entidad certificadora, etc.

pg. 2

Manual creado por: Fabio H. Cern, Alberto Balczar R.


PASO 4: Firmar la peticin elaborado
Se deben firmar las peticiones creadas y verificar que esta OK, como lo muestra la figura. $ sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt x509: Aplicar formato estndar de llave pblica req: Request para el certificado days: Validez del certificado (1 ao) in: Input de la peticin de firma elaborada previamente signkey: La llave que firmara el certificado out: Certificado resultante

Se pueden ver los parmetros de configuracin anteriormente realizados.

PASO 5: Crear una versin de llave que no requiera password


Se realiza la siguiente instruccin para que el servicio apache no pida password cuando inicia. $ sudo openssl rsa -in server.key -out server.key.insecure

PASO 6: Renombrar archivos


Se renombran los archivos con el nuevo archivo generado anteriormente, con eso evitaremos la autenticacin al inicio del servicio apache. $ sudo mv server.key.insecure server.key

pg. 3

Manual creado por: Fabio H. Cern, Alberto Balczar R.

PASO 7: verificacin y aseguramiento


Se pueden asegurar los archivos creados. server.crt: Certificado autofirmado server.csr: Certificado signing request server.key: Llave del servidor Para que solo root los pueda modificar. $ sudo chmod 000 server.csr $ sudo chmod 000 server.crt $ sudo chmod 000 server.key $ sudo chmod 000 server.key.secure

PASO 8: Carpeta SSL en apache2


Se debe crear un directorio en llamado ssl en /etc/apache2 y copiar todas las claves creadas $ sudo mkdir /etc/apacge2/ssl $ sudo ls /etc/apache2/ $ sudo cp server.crt /etc/apache2/ssl/ $ sudo cp server.key /etc/apache2/ssl/

pg. 4

Manual creado por: Fabio H. Cern, Alberto Balczar R.

PASO 9: activar modulos SSL


Activar SSL y reiniciar el servicio Apache. $ sudo a2enmod ssl $ sudo /etc/init.d/apache2 restart $ sudo a2enmod ssl

Despus de ejecutada esta accin de debe realizar esto mismo con: $ sudo a2ensite default-ssl

pg. 5

Manual creado por: Fabio H. Cern, Alberto Balczar R.

PASO 10: Carpeta de sitio seguro


En la ruta: $ sudo mkdir /etc/apache2/sites-available/ se debe crear la carpeta /ssl

Luego verificamos $ ls /etc/apache2/sites-available/

PASO 11: Copiar archivo default


A la carpeta creada anteriormente se le copia el archivo default. $ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl/

pg. 6

Manual creado por: Fabio H. Cern, Alberto Balczar R.


PASO 12: Directorios http y https
Se debe crear en /var/www/ una carpeta con el nombre /html. Posterior a ello en /var se debe crear una carpeta llamada /www-ssl y dentro de ese directorio crear un directorio llamado /html. $ sudo ls /var/www/ $ sudo mkdir /var/html $ sudo ls /var/www/ $ sudo ls /var/ $ sudo mkdir/var/www-ssl $ sudo ls /var/ $ sudo mkdir /var/www-ssl/html $ sudo ls /var/www-ssl

PASO 13: Editar /default


Se debe editar el archivo default ubicado en la carpeta /ssl recientemente creada donde se encuentran los archivos de apache /etc/apache2 de manera que se escuche el puerto 443 para conexiones seguras. Se debe agregar las siguientes lneas para poder leer los certificados. Modificar <Virtualhost *:80> a <Virtualhost *:443> Agregar la instruccin despus de ServerAdmin ServerName localhost Modificar la ruta de DocumentRoot a /var/www-ssl/html

pg. 7

Manual creado por: Fabio H. Cern, Alberto Balczar R.

Agregar al final del cdigo SSLEngine On SSLCertificateFile /etc/apache2/ssl/server.crt SSLCertificateKeyFile /etc/apache2/ssl/server.key

Se debe tambin modificar el archivo /default de /etc/apache2/sites-available/ en la parte de DocumentRoot a /var/www/html Y por ltimo se agrega la instruccin despus de ServerAdmin ServerName localhost

pg. 8

Manual creado por: Fabio H. Cern, Alberto Balczar R.

Reiniciar apache2 y se debe evidenciar que sube el servicio $ sudo /etc/init.d/apache2 restar

pg. 9

Manual creado por: Fabio H. Cern, Alberto Balczar R.


PASO 14: Modificacion ruta de SSL
Se debe modificar la ruta para que no tenga problema de direccionamiento de los certificados digitales.

NMAP localhost Se corre NMAP para verificar que est corriendo el puerto 443 en el localhost.

pg. 10

Manual creado por: Fabio H. Cern, Alberto Balczar R.


PASO 15: Verificar resultado
Se accede a http://localhost como se muestra en la imagen para verificar que el servicio apache est arriba.

Posterior a ello se accede a https://localhost y se muestra la imagen siguiente, que indica que es una conexin insegura pero por ser una entidad certificadora no reconocida.

pg. 11

Manual creado por: Fabio H. Cern, Alberto Balczar R.


Parmetros de configuracin del certificado anteriormente generado

Se acepta el nuevo certificado digital creado. Por ltimo se puede verificar el servicio corriendo de forma segura.

pg. 12

You might also like