Escolar Documentos
Profissional Documentos
Cultura Documentos
https://www.openssl.org/docs/apps/openssl.html
https://www.openssl.org/docs/apps/req.html
-newkey rsa:2048 > creamos una nueva clave privada y especificamos la longitud de clave
-x509 > crear un certificado autofirmado
-sha256 > usar algoritmo de resumen sha256
-days256 > crear el certificado para una validez de 365 das
-nodes > la clave privada no ser encriptada (evita tener que introducir cada vez la contrasea para acceder
a la clave privada)
-out > archivo de salida donde almacenar el certificado
-keyout > archivo de salida donde almacenar la clave privada
El Common Name es conveniente que sea la pgina web de la que queramos crear el certificado.
De esta forma, aunque SI que nos aparecer el mensaje de que el certificado no ha sido firmado
por una CA de confianza, al menos NO nos aparecer el mensaje de que es para otro sitio
diferente.
OpenSSL dispone de varios script para realizar ciertas tareas. Uno de ellos es CA.pl, que en
Ubuntu se encuentra en el directorio /usr/lib/ssl/misc/CA.pl.
Antes de lazar el script, nos crearemos un directorio de trabajo donde crear nuestra CA y desde
donde posteriormente crearemos los certificados web y los firmaremos por la nuestra CA.
Cuando lancemos el script, se nos crear dentro un directorio llamado demoCA con todos los
archivos de la CA creada. Este directorio es configurable cambiando el archivo de configuracin
de SSL.
#cd
#mkdir miCA
#cd miCA
Lanzaremos el script con el siguiente parmetro:
#/usr/lib/ssl/misc/CA.pl -newca
Al arrancar el script, nos pedir una contrasea. Esta contrasea ser la contrasea de la CA y se
nos pedir cada vez que queramos firmar un certificado.
Al final de proceso, por seguridad, se nos pide otra contrasea extra, pero esta vez la podemos
omitir. Despus de esto, tendremos que volver a introducir la contrasea de la CA establecida
anteriormente para firmar el certificado de la CA.
# ./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:
Verifying - Enter PEM pass phrase:
----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]:Spain
Locality Name (eg, city) []: Huercal-Overa
Organization Name (eg, company) [Internet Widgits Pty Ltd]:IES Cura Valera
Organizational Unit Name (eg, section) []:Dpto Informatica
Common Name (eg, YOUR name) []:CA IES Cura Valera
Email Address []:admin@iescuravalera.es
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number:
bf:8a:98:f2:48:c0:84:68
Validity
Not Before: Feb 18 19:02:57 2009 GMT
Not After : Feb 18 19:02:57 2012 GMT
Subject:
countryName
= ES
stateOrProvinceName
= Spain
organizationName
= IES Cura Valera
organizationalUnitName
= Dpto Informatica
commonName
= CA IES Cura Valera
emailAddress
= admin@iescuravalera.es
X509v3 extensions:
X509v3 Subject Key Identifier:
BD:85:EB:33:B0:0B:06:74:9A:F3:AB:18:95:D5:4B:CB:76:B8:EA:83
X509v3 Authority Key Identifier:
keyid:BD:85:EB:33:B0:0B:06:74:9A:F3:AB:18:95:D5:4B:CB:76:B8:EA:83
DirName:/C=ES/ST=Spain/O=IES Cura Valera/OU=Dpto Informatica
serial:BF:8A:98:F2:48:C0:84:68
X509v3 Basic Constraints:
CA:TRUE
Certificate is to be certified until Feb 18 19:02:57 2012 GMT (1095 days)
Write out database with 1 new entries
Data Base Updated
Y una vez creado el .csr, debemos de firmarlo por nuestra CA. Para firmar la peticin, se nos
pedir la clave de nuestra CA.
#openssl ca -policy policy_anything -out servidor.pem -infiles servidor.csr
servidor.key
servidor.pem
Activaremos el mdulo SSL con el comando
# a2enmod SSL
SSLEngine On
SSLCertificateKeyFile /etc/apache2/ssl.crt/servidor.key
SSLCertificateFile /etc/apache2/ssl.crt/servidor.pem
</VirtualHost>
Convertir de PEM > DER (nos situaremos en el directorio donde este el cacert.pem)
#openssl x509 -in cacert.pem -out cacert.cer -sha1 -outform DER
Convertir de PEM > P12 (nos situaremos en el directorio donde se han creado las claves del servidor)
#openssl pkcs12 -export -in servidor.pem -inkey servidor.key
-certfile demoCA/cacert.pem -out newcert.p12