Primero debemos de tener instalados el OpenSSL, el Apache2 y el SSL-Cert, para ello utilizaremos el siguiente comando:

# apt-get install apache2 openssl ssl-cert

Recordemos que para que nos quede un trabajo completo debemos de tener un Dominio en nuestro equipo, para ello instalaremos y configuraremos un Servidor DNS en este caso el Bind9, lo instalaremos con el siguiente comando:

# apt-get install bind9

Despues debemos de configurarlo, en nuestro caso el dominio sera bluder55.com y los archivos de configuracion deben de quedar de la siguiente manera:

# nano /etc/bind/named.conf


# nano /etc/bind/named.conf.options


Ahora copiaremos el archivo db.local con el nombre de directa, así:

# cp /etc/bind/db.local /etc/bind/directa

Entraremos a editar el archivo:

# nano /etc/bind/directa


Ahora copiaremos el archivo db.127 con el nombre de inversa, así:

# cp /etc/bind/db.127 /etc/bind/inversa

Entraremos a editar el archivo:

# nano /etc/bind/inversa


Ahora entraremos a editar el archivo resolv.conf para indicar el nombre y la IP del Servidor DNS, así:

# nano /etc/resolv.conf

En nustro caso debe de quedar así:


Despues de la configuracion del DNS debemos de entrar a crear el Certifiado Digital para nuestra Autoridad Certificadora, para ello debemos de utilizar un Scrip que se encuentra en la ruta /usr/lib/ssl/misc/ y el archivo tiene el nombre de CA.pl, para crear el Certificado Digital de la AC nos pararemos en un directtorio donde sea facil encontrarlo, en este caso nosotros crearemos una carpeta donde se encontraran todos los componentes de la AC, el directorio tendra el nombre de AC dentro del directorio /opt, lo crearemos así:

# mkdir /opt/AC

Despues entraremos al directorio que acabamos de crear y ejecutaremos el Scrip (Con la ruta apsoluta), esto lo hacemos por que dentro de este directorio se crearan una serie de directorios necesarios para la AC, así:

# /usr/lib/ssl/misc/CA.pl -newca

Despues de ejecutar este Scrip el nos preguntara unos parametros, en los cuales colocaremos los siguientes datos:

# /usr/lib/ssl/misc/CA.pl -newca

CA certificate filename (or enter to create)

Making CA certificate ...

Generating a 1024 bit RSA private key

..............................................................++++++

...........++++++

writing new private key to './demoCA/private/cakey.pem'

Enter PEM pass phrase:sena2009

Verifying - Enter PEM pass phrase:sena2009

-----

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]:CO

State or Province Name (full name) [Some-State]:Antioquia

Locality Name (eg, city) []:Medellin

Organization Name (eg, company) [Internet Widgits Pty Ltd]:bluder55.com

Organizational Unit Name (eg, section) []:AC

Common Name (eg, YOUR name) []:smith.bluder55.com

Email Address []:administrator@bluder55.com


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:sena2009

Check that the request matches the signature

Signature ok

Certificate Details:

Serial Number:

d7:28:1b:1a:cc:7e:e5:44

Validity

Not Before: Feb 10 05:52:33 2009 GMT

Not After : Feb 10 05:52:33 2012 GMT

Subject:

countryName = CO

stateOrProvinceName = Antioquia

organizationName = bluder55.com

organizationalUnitName = Administracion de Redes

commonName = smith.bluder55.com

emailAddress = administrator@bluder55.com

X509v3 extensions:

X509v3 Subject Key Identifier:

51:5A:1D:11:89:19:1E:5E:4E:6E:07:4B:1E:70:ED:54:D4:6A:02:7E

X509v3 Authority Key Identifier:

keyid:51:5A:1D:11:89:19:1E:5E:4E:6E:07:4B:1E:70:ED:54:D4:6A:02:7E

DirName:/C=CO/ST=Antioquia/O=bluder55.com/OU=Administracion de Redes/CN=smith.bluder55.com/emailAddress=administrator@bluder55.com

serial:D7:28:1B:1A:CC:7E:E5:44


X509v3 Basic Constraints:

CA:TRUE

Certificate is to be certified until Feb 10 05:52:33 2012 GMT (1095 days)


Write out database with 1 new entries

Data Base Updated


Despues de esto nos debe de quedar el prom normal y ya tenemos nuestra AC y nuestro Certificado Digital que sera el que firmara los Certificados de las Paginas Web Clientes, que sera el mismo que se debe instalar en los Navegadores Web de los Clientes.

Ahora haremos la peticion para el Servidor Web, que en este caso estara en la misma maquina de la AC, para ello crearemos un directorio donde quedara la petecion, en nuestro caso quedara en el directorio apache2 con la ayuda del siguiente comando:

# mkdir etc/apache2/ssl

Despues entraremos al directorio y ejecutaremos el siguiente comando:

# openssl req -newkey rsa:1024 -out req.paginaweb.pem

Despues de ejecutar este Scrip el nos preguntara unos parametros, en los cuales colocaremos los siguientes datos:

# openssl req -newkey rsa:1024 -out req.paginaweb.pem

Generating a 1024 bit RSA private key

.......++++++

.............................++++++

writing new private key to 'privkey.pem'

Enter PEM pass phrase:sena2009

Verifying - Enter PEM pass phrase:sena2009

-----

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]:CO

State or Province Name (full name) [Some-State]:Antioquia

Locality Name (eg, city) []:Medellin

Organization Name (eg, company) [Internet Widgits Pty Ltd]:bluder55.com

Organizational Unit Name (eg, section) []:Administracion de Redes

Common Name (eg, YOUR name) []:smith.bluder55.com

Email Address []:administrator@bluder55.com


Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:ENTER

An optional company name []:ENTER


Antes de firmar al peticion de la pagian web, le debemos de indicar el Servidor SSL donde se encuentra el par de llaves y el Certificado Digital de la AC, para ello debemos de entrar a editar el siguiente archivo openssl.conf en el directorio /etc/ssl/, buscaremos la linea que dice dir y cambiaremos la ruta del certificado por la ruta real, en nuestro caso es /opt/AC/demoCA, la linea debe de quedar así:

dir = /opt/AC/demoCA # Where everything is kept

Despues de generar la peticion debemos de Firmarla, es decir, la AC debe de firmar con su Certificado Digital la peticion de la pagina web, para ello utilizaremos el siguiente comando:

# openssl ca -in req.paginaweb.pem -out cert.paginaweb.pem

En este comando le damos el nombre del archivo de peticion y le damos el nombre para el certificado digital para la pagina web, las salida debe de ser como esta:

# openssl ca -in req.paginaweb.pem -out cert.paginaweb.pem

Using configuration from /usr/lib/ssl/openssl.cnf

Enter pass phrase for /opt/AC/demoCA/private/cakey.pem:sena2009

Check that the request matches the signature

Signature ok

Certificate Details:

Serial Number:

d8:ed:a3:f4:3d:c6:d8:bf

Validity

Not Before: Feb 25 16:47:12 2009 GMT

Not After : Feb 25 16:47:12 2010 GMT

Subject:

countryName = CO

stateOrProvinceName = Antioquia

organizationName = SENA

organizationalUnitName = Administracion de Redes

commonName = smith.bluder55.com

emailAddress = administrator@bluder55.com

X509v3 extensions:

X509v3 Basic Constraints:

CA:FALSE

Netscape Comment:

OpenSSL Generated Certificate

X509v3 Subject Key Identifier:

CF:BA:CC:4A:4C:1D:9F:58:2E:DA:64:04:4E:C7:E2:F5:39:CB:84:CE

X509v3 Authority Key Identifier:

keyid:31:0F:94:C0:97:36:FD:16:45:45:00:04:62:03:9A:E7:99:13:87:92


Certificate is to be certified until Feb 25 16:47:12 2010 GMT (365 days)

Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated


Si esta mala la ruta del cetificado digital o la AC esta mal creada nos aparecera un error como este:

Using configuration from /usr/lib/ssl/openssl.cnf

Error opening CA private key ./demoCA/private/cakey.pem

2993:error:02001002:system library:fopen:No such file or directory:bss_file.c:352:fopen('./demoCA/private/cakey.pem','r')

2993:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:

unable to load CA private key


Despues del comando pasado al listar en el directorio donde estamos nos debe de aparecer un archivo con el nombre que le dimos anteriormente, en nustro caso cert.paginaweb.pem.

Despues debemos de tener un Servidor Web, que en este caso sera nuestra propia maquina, la configuracion que debemos de hacer es copiar un archvio de que se encuentra en /etc/apache2/sites-available/ con el nombre de default-ssl con la ayuda del siguiente comando (dentro del siguiente directorio /etc/apache2/sites-available/):

# cp default-ssl paginaweb

Despues debemos de entrar a editar el archivo, editaremos las siguientes lineas (Debemos de encontrar SSLEngine en on, viene por defecto):

ServerName smith.bluder55.com

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/cert.paginaweb.pem

SSLCertificateKeyFile /etc/apache2/ssl/privkey.pem

Despues debemos de guardar y avilitar el Virtual Host, con la ayuda de los siguiente comandos:

# a2ensite paginaweb

Nos debe de salir:

Enabling site nada.
Run '/etc/init.d/apache2 reload' to activate new configuration!


Despues le daremos:

# a2enmod rewrite

Nos dede de salir:

Module rewrite already enabled

Despues debemos de avilitar tambien el modulo de SSL, así:

# a2enmod ssl

Nos debe de salir:

Module ssl already enabled

Luego de esto debemos de verificar que el apache2 este escuchando por los Puertos 80 y 443, esto lo verificaremos en el archivo de configuracion /etc/apache2/ports.conf, debe de contener las siguientes lineas:

Listen 80
Listen 443


Ya tenemos todo listo menos nuestra pagina Web, como nosotros dejamos todo por defecto, el apache2 buscara la pagina por defecto que se encuentra en /var/www/ con el nombre de index.html, en este caso editaremos este archivo, aunque podemos crear otro y darle la ruta en el archivo de configuracion. En nuestro caso el archivo tendra las siguientes lineas:


En este punto ya podemos reiniciar nuestro Servidor Web, con la ayuda del siguiente comando:

# /etc/init.d/apache2 restart

Nos debe de pedir la contraseña de la AC, de lo contrario es que no cargo bien el modulo de SSL, despues de colocar la clave y que cargue bien, así:

Restarting web server: apache2Apache/2.2.9 mod_ssl/2.2.9 (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 smith.bluder55.com:443 (RSA)

Enter pass phrase:

OK: Pass Phrase Dialog successful.

.


Ya podremos ingresar a nuestra pagina Web con https y no con http, recordemos que debemos de Importar el Certificado Digital de nuestra Autoridad Certificadora en el navegador web, de lo contrario no sabra por quien esta firmado el Certificado Digital de la Pagina Web,

Para que no tengamos que colocar cada ves que ingresemos al navegador web la s en http, crearemos un VirtualHost que nos direccionara el http a https, para ello crearemos un archivo en el directorio /etc/apache2/sites-available/ con el nombre de paginawebs, así:

# nano /etc/apache2/sites-available/paginawebs

Y dentro del archivo agregamos las siguientes lineas:


Reiniciamos de nuevo el Servidor Apache2 y listo.
|
This entry was posted on 15:28 and is filed under . You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

1 comentarios:

On 20 de junio de 2009, 9:16 , Juan dijo...

a mi no me salen las preguntas cuando pongo CA.pl -newca , no se porque en todos los tutoriales dicen que sale, tu sabes porque?