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
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.
1 comentarios:
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?