Crear Certificados SSL

* traducción libre de Slacksite

Recordatorio rápido y simple de como crear certificados ssl para apache con el mod_ssl para cualquier duda o explicación mejor te remites a los orígenes : http://www.modssl.org/docs y http://www.openssl.org/docs/

Ssl es… una manera de crear un tunel entre el servidor web y tu ordenador. Mediante un certificado de encriptación que debe estar firmado por el servidor alguien en quien TU confías . Si te conectas a tu banco y el certificado de seguiridad esta firmado por hakersmalos.com pues… dile adiós a tu dinero, je, je.

- ¿Y como puedo hacer eso en mi servidor? - ¿El que?¿lo de desplumar a un pringao? - Noooo Lo de poner un certificado de seguridad. - Bamos a ello!

Lo primiero es lo primero. Tienes que tener el openssl para poder hacerlo. Asín que ya sabes, apt-get install openssl o como quieras hacerlo

Crear un certificado SSL

Vamos a empezar. Lo primero es general la LLAVE PRIVADA del servidor. Esto se hace mediante la generacion aleatoria de una cadena de texto. El modo simple es este:

openssl genrsa -des3 -out server.key 1024

O si eres un loco con manía persecutoria puedes indicarle el nombre de tantos archivos como quieras para que genere la secuencia aleatoria en base a esos archivos. Pueden ser archivos de texto, archivos comprimidos y creo que tambien gráficos, pero esto último no estoy muy seguro.

openssl genrsa -des3 -rand file1:file2:file3:file4:file5 -out server.key 1024

donde file1:file5 son esos archivos

El sistema te pedirá una contraseña…. ¡RECUERDALA! Pos ala! ya tenemos nuestra llave privada. El caso es que el sistema te la pedriá siempre. Pero… que pasa cuando actualizas apache y se reinicia? pues que te pide la clave y si se reinicia automaticamente… pues no arranca hasta que algun pringao va y mete la contraseña. No es aconsejable a nivel de seguridad. pero si a nivel de practicidad. Puedes deshabilitar el hecho de que te pida simpre la clave con este comando:

openssl rsa -in server.key -out server.pem

Por último vamos a generar el archivo csr.

openssl req -new -key server.key -out server.csr

Aqui te hará una serie de preguntas..

Enter pass phrase for server.key:
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]:ES
State or Province Name (full name) [Some-State]:Catalunya
Locality Name (eg, city) []:Barcelona
Organization Name (eg, company) [Internet Widgits Pty Ltd]:juantxu.net
Organizational Unit Name (eg, section) []:juantxu.net
Common Name (eg, YOUR name) []:juantxu.net
Email Address []:juantxu@juantxu.net

Please enter the following 'extra' attributes
to be sent with your certificate request 
A challenge password []: una cualquiera...
An optional company name []:juantxu.net

De este modo la clave no requiere de la contraseña.

Una vez que ya tenemos esto hecho… ya podemos emitir certificados para nuestro sitio. Vamos a generar un certificado auto-firmado. Se puede hacer un certificado que será firmado por una entidad de confianza. Osea, como un notario de internet. Y que cobra como un notario real.

openssl x509 -req -days 60 -in server.csr -signkey server.key -out server.crt

Te pedirá la clave… la general…

Signature ok
subject=/C=ES/ST=Catalunya/L=Barcelona/O=juantxu.net/OU=juantxu.net/CN=juantxu.net/emailAddress=juantxu@juantxu.net
Getting Private key
Enter pass phrase for server.key:

pues ya tenemos nuestra certificado. ahora vamos a usarlo!!!

NameVirtualHost *:443
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/local/mipagina
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.pem
ServerName mipagina.midominio.com
<Directory "/var/local/mipagina">
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  allow from all
</Directory>
</VirtualHost>
 
ssl.txt · Última modificación: 2008/05/13 10:00 (editor externo)
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki