martes, 27 de mayo de 2008

Certificado Digital y SSL

Los pasos siguientes es para hacer nuestro certificado digital y a la vez firmalo uno mismo. Los pasos son los siguientes.

QUES ES SSL
Secure Sockets Layer,es seguridad de la Capa de Transporte que proporcionan comunicaciones segura a internet ssl utiliza autenticacion y privacidad.

Instalar openssl
  • apt-get install openssl
Crear una CA
openssl req -x509"certificado CA" -newkey rsa:2048"algoritmo de encriptacion rsa de 2048 bytes" -keyout"el archivo de salida para la llave" cakey.pem"es la privada" -days 3650 "en cuantos dias o años axpira" -out"salida" cacert.pem "es la publica".

Generamos nuestra clave privada que sera nuestro certificado digital
openssl genrsa"genera la llave" -des3"algoritmo de cifrado para la clave" -out serv-priv.pem "se almacena en el fichero llave publica del certificado" --passout pass:
elpasword 2048 "el password de nuestra llave privada"

"nos pedira una contraseña la cual le pondremos la misma contraseña que le colocamos al paso anterior"

La peticion del certificado
openssl req -new"le indicamos la peticion de la llave privada" -key serv-priv.pem -out petic- certificado-serv.pem"y como salida le indicamos que genere el archivo petic-certificado-serv.pem"

Emitir el certificado
el archivo que se dispone a definir las caracteristicas de openssl es "openssl.cnf" pero es mejor crearlo en un editor de texto con las lineas siguientes

-basicConstraints = critical,CA:FALSE " para que se cumplan con el x509v3 y con la
RFC3280"
-extendedKeyUsage = serverAuth "lo que queremos certificar"

La configuracion del certificado
openssl x509"tipo de certificado que vamos a utilizar" -CA"autoridad certificadora" cacert.pem"la clave
publica" -CAkey cakey.pem"la clave privada" -req"solicitud de firma certificadora
CSR" -in petic-certificado-serv.pem"la peticion de certificado" -days 3650"la validez del certificado" -extfile config1.txt"es el editor de configuracion donde agregamos las linea que colocamos antes" -sha1"alagoritmo de cifrado" -CAcreateserial -out servidor-cert.pem

Crear nuestro propio certificado digital para que la identidad certificadora no la firme
openssl req -new -nodes -out peticion-guerra.pem -keyout llave-guerra.pem

Entoces se lo enviamos a la identidad certificadora por ssh o por usb
scp peticion-guerra.pem sena@ip???.??.??:/home/sena/Desktop

Ahora vamos a configurar el servidor aapache2 bajo SSL


Instalar apache2
apt-get install apache2
cd /etc/apache2 "que la ruta donde esta la configuracion del apache"

verificar que en editor de ports.conf que esta en apache2 se encuentra las siguientes lineas
"listen 80,listen 443"

Antes de configurar otro archivo de configuracion debes instalar el modulos para que apache2 pueda soportar ssl
apt-get install libapache-mod-ssl "para apache"
para apache2 libapache2-mod-log-sql-ssl "para apache2"

cuando ya este instalado el modulo actuaremos para cargar el modulo
a2enmod ssl "y te saldra esto Module ssl installed; run /etc/init.d/apache2 force-reload to enable." la cual ya esta arriba el modulo

Creamos nuestra pagina web
cd /etc/apache2

El archivo apache2.conf agregamos las siguientes lineas
DirectoryIndex index.html(bienvenidos a mi pagina web solo con ensayo)

La ruta donde esta el archivo. html esta /var/www

la cual seria index.html que se le desarrolla la pagina

Ahora vamos a configurar el fichero site-anables para que pueda hacer en forma segura por el puerto 443 pico default que esta en el archivo sites anables y agregamos lo siguiente
NameVirtualHost *:443

ServerAdmin eliguerra@misena.edu.co
DocumentRoot /var/www/
SSLEngine on
SSLCertificateFile /etc/ssl/servidor-cert.pem
SSLCertificateKeyFile /etc/ssl/serv-priv.pem
ServerName mipagina.midominio.com

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all


y para que trabaje en forma insegura agregamos las sigientes lineas por el puerto 80

NameVirtualHost *:80
ServerAdmin eliguerra@misena.edu.co
DocumentRoot /var/www/
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

asi es el archivo en forma segura y no segura
Ya que hemos configurado el editor haremos un vinculo simbolico para el fichero default
entonces le damos ls -s /sites-availables/default 000-default para hacer el vinculo

Ahora paramos el servicio de apache
/etc/init.d/apache2 stop

Ya que hemos parado el servicio lo volvemos y lo recargamos para que coga los cambios
/etc/init.d/apache2 start "y nos monstrara lo siguiente"
Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName httpd (no pid file) not running apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Apache/2.2.8 mod_ssl/2.2.8 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Server mipagina.midominio.com:443 (RSA)
Enter pass phrase:
OK: Pass Phrase Dialog successful.

ala cargar el servicio nos pedira la contraseña RSA que le colocamos en los pasos anterior y ademas genere un password para que cuando reinicie el servicio le proporcine la clave

el archivo seria asi
#!/bin/sh
echo mipassword "la que tu quieras ponerle"
le cambiamos los permisos
chmod 700 generadordeclave es el nombre del archivo. "le ponemos una clave para que cuando carge el servicio pida contraseña.

Al cargar servicio entramos a la pagina y nos muestra que esta firmado por una identidad certificadora

*La captura


No hay comentarios: