Instalar CA + Apache2


En este mini howto, se instalara una entidad certificadora, con el fin de configurar un sitio SSL en Apache2.

1- Software necesario.

#apt-get install apache2 openssl ssl-cert


2- Nos hubicamos en un directorio opcional, en este ejemplo se utilizara /OPT y ejecutamos este Script.

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

3- Se solicitaran algunos datos.

Enter PEM pass phrase:****
Verifying - Enter PEM pass phrase:****
---------
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]:Prueba S.A
Organizational Unit Name (eg, section) []:Sistemas
Common Name (eg, YOUR name) []:Admin
Email Address []:admin@prueba.net
---------
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:[ ENTER ]
---------
Enter pass phrase for ./demoCA/private/cakey.pem:**** (Repetimos la contraseña)


No nos debe salir ningun error.

4- Editamos el archivo de configuracion de OpenSSL, hubicamos esta linea y especificamos la ruta en donde se creo la CA, el resto lo dejamos como esta.

#vim /etc/ssl/openssl.cnf
--------------------[ ]---------------------
dir = /opt/demoCA # Where everything is kept
--------------------[ ]---------------------


5- Creamos el directorio en donde guardaremos los certificados para el sitio Web.

#mkdir /etc/apache2/ssl

6- Realizamos la peticion del certificado para el sitio, se nos solicitara algunos datos.

#openssl req -newkey rsa:1024 -out req.paginaweb.pem
---------
Enter PEM pass phrase:****
Verifying - Enter PEM pass phrase:****
---------
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]:Prueba S.A
Organizational Unit Name (eg, section) []:Sistemas
Common Name (eg, YOUR name) []:Administrator (El
cer, en CN debe ser diferente)
Email Address []:admin@prueba.net
---------
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: [ ENTER ]
An optional company name []: [ ENTER ]


Al momento de listar veremos:

#ls
privkey.pem req.paginaweb.pem


En donde privkey.pem es la llave privada y req.paginaweb.pem es el requerimiento para el certificado.

7- Ahora la CA firmará el requerimiento que hicimos, para esto dijitamos:

#openssl ca -in req.paginaweb.pem -out cert.paginaweb.pem
---------
Enter pass phrase for /opt/demoCA/private/cakey.pem:**** (Repetimos la contraseña, del punto 3)
---------
Certificate is to be certified until Dec 12 18:39:42 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


8- Editamos el sitio Web, nos dirigimos a:

#cd /etc/apache2/sites-available/


Realizamos copia del sitio por defecto

#cp default-ssl Sitio_seguro

Y editamos

#vim Sitio_seguro

Verificamos estas lineas:

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/cert.paginaweb.pem (Llave publica)
SSLCertificateKeyFile /etc/apache2/ssl/privkey.pem (Llave privada)


9- Habilitamos este sitio con:

#a2ensite Sitio_seguro

Tambien habilitamos el modulo Rewrite con:

#a2enmod rewrite

Y por ultimo el modulo SSL.

#a2enmod ssl

10- Editamos el archivo Ports, agregando Listen 443, debe quedar asi:

#vim /etc/apache2/ports.conf
---------
Listen 80
Listen 443


11- Reiniciamos el servicio Web, se nos solicitara la contraseña del certificado.

#/etc/init.d/apache2 restart
---------
Server 127.0.1.1:443 (RSA)
Enter pass phrase:**** (Repetimos la contraseña, del punto 6)
---------
OK: Pass Phrase Dialog successful.

12- Accedemos al sitio.

Se ha realizado localmente https://192.168.1.64

Si queremos que las peticiones HTTP, se redireccionen a HTTPS, agregamos en nuestro VirtualHost:
---------

0 comments

Publicar un comentario

 
|  Esdebian Foro El que sabe sabe, no como el que quiere aprender!