Editado Por Daniel Morcuende (21/12/2015)CA GRATUITAS
LET'S ENCRYPT
El proyecto Let’s Encrypt es anunciado a finales del 2014 como una alternativa gratuita a la emisión de certificados seguros. Formada por organizaciones como Electronic Frontier Foundation (EFF), Mozilla, Cisco o Facebook, entre otras muchas entidades, entienden que la red debe de ser segura y gratuita para todos.
El 3 de Diciembre del 2015 comienza su beta pública (trabajando hasta este ese día con invitaciones).



¿Cuales son los navegadores y sistemas operativos soportados?
Por ahora, la raíz certificadora de autoridad (CA) de ISRG (Let’s Encrypt) no está incluida en ningún navegador. Por lo que está firmada por IdenTrust (“DST Root CA X3” Raíz CA).

Android: A partir de la versión 2.3.6 en adelante.

Mozilla Firefox: A partir de la versión 2.0 y trabajando en todos los SO.

Windows
  • Internet Explorer (y cualquier programa que use Windows CryptoAPI) funciona (ya que “DST Root CA X3” es incluida en la tienda de certificados de Windows. Esta es automáticamente descargas en versiones superiores a Vista.
  • Google Chrome usa la tienda de certificados de Windows (No en Windows XP)

Apple
  • Safari 4.0 bajo Mac OSX 10.4 o superior.
  • IOS: con versiones 3.1 o superior.

Java
  • Oracle Java: no lo acepta actualmente.
  • OpenJDK funciona bajo Ubuntu.

Linux
  • Debian: A partir de la versión 6.0
  • Ubuntu: A partir de la versión 12.04

¿Podemos usar una llave privada o CSR con el cliente Let’s Encrypt?
Si, podemos obtener un certificado de una llave privada existente.

¿Qué sistemas operativos soporta el cliente Let’s Encrypt?
En la actualidad soporta las distribuciones mayoritarias de Linux y BSD. En un futuro tienen pensado hacer un port a Windows (PowerShell).

¿Cómo podemos obtener nuestro certificado con Let’s Encrypt?
Nos ofrece un cliente oficial para comenzar la instalación del certificado en nuestro servidor.

¿Cual es el tiempo de vida de los certificados?
Por ahora solo se establece un tiempo de 90 días hasta que expire el certificado. Con esta medida, limitan el daño en caso de robo de la clave privada.

Instalación del cliente
letsencrypt-auto es un script que contiene las dependencias necesarias dependiendo de tu SO.
Para ello lo obtendremos de su repositorio Git:

https://github.com/letsencrypt/letsencrypt

Para instalar simplemente ejecutamos
./letsencrypt-auto


A continuación se abrirá una guía que te ayudará en el proceso de obtención e instalación de los certificados correspondientes.

Plugins
El cliente Let’s Encrypt soporta diferentes “plugins” que puedes ser usados para obenter y/o instalar los certificados dependiendo del servidor web.

  • Apache. Si estás usando Apache sobre Debian (o derivadas) podemos usar este plugin. Este automáticamente obtendrás e instalarán los certificados en el servidors. Para ello simplemente añada la siguiente línea --apache

  • Ngix. Si disponemos de este webservices añadimos --nginx

En la propia web contiene un completo tutorial con el resto de plugins específicos para cada servidor web.
https://letsencrypt.readthedocs.org/en/latest/using.html#installation

¿Dónde están los certificados?
Podemos encontrar todos los Certificados SSL en la siguiente ruta
/etc/letsencrypt/live/$domain


Donde $domain es el fqdn (domain name) usado durante el proceso.

Renovar la vida de los certificados
Para renovar los certificados simplemente llama a
letsencrypt (o letsencrypt-auto)


Automáticamente sigue los pasos usando la configuración usada inicialmente. Para agilizar el proceso, añade al anterior comando la siguiente línea
--renew-by-default


Tenga en cuenta que se nos enviará notificaciones al correo que facilitamos en el certificado, avisandonos que el tiempo de vida expira.

(Actualmente están trabajando en renovarlo automáticamente)




TRIAL version(si quieres full… paga)

PRIMER PASO-instalar java
Tener java instalado en nuestro equipo, para poder ejecutar la herramienta con la que en este tutorial generaremos los archivos necesarios para solicitar nuestro certificado SSL.

Página donde descargar Java.

Es indiferente el jre o jdk, pues ambos incorporan el “keytool.exe”, la herramienta antes mencionada.


SEGUNDO PASO- creación de .csr y .jks
Primero vamos a definir qué son cada uno de estos archivos.
.JKS: Es el llamado Keystore o almacén de llaves, es quien contendrá la clave privada. Asegúrese de no perder este archivo después de crear su CSR pues será necesaria para instalar su certificado.

.CSR: abreviatura de CertificateSigningRequest (Solicitud de Firma de Certificado), es un texto cifrado que se genera en el servidor, es necesario proporcionar un CSR para poder crear el certificado. El CSR contendrá información codificada específica de la compañía y el nombre de dominio, esta información se conoce como DN. Para la mayoría de servidores el DN contiene los campos país, estado, provincia, ciudad ,Organización de la Unidad Organizacional y nombre común.

La clave privada es generada al crear el CSR, se debe utilizar la misma clave privada con el certificado al instalar los archivos de certificado que emita la entidad certificadora, si se pierde la clave privada, el certificado no funcionará.


El CSR lo más cómodo es hacerlo vía online en alguna de las numerosas páginas que hay para ello, por ejemplo en esta Web.

Nos saldrá una ventana como la de abajo para poner nuestro datos, una vez puestos, si le damos a generar, nos saldrá el comando que debemos pegar en la ventana de comandos para que se nos genere nuestro CSR y JKS. Hay que tener en cuenta, que se consideran claves inseguras aquellas claves con longitudes inferiores a 1024.


generaCSR.png
generaCSR.png


Para ejecutar el comando previamente obtenido, como hemos mencionado, abrimos el cmd, y vamos a donde tenemos instalado nuestro keytool.exe, en el ejemplo de abajo está en "Archivos de programas\java\jdk1.6.0_10\bin".

Una vez en esa ruta pegamos nuestro comando siguiendo las instrucciones de la imagen de abajo. Tras esto, nos generará nuestra clave privada como nuestra Solicitud de Firma de Certificado y los guarda en dos archivos:

www_ejemplo_com.jks , y www_ejemplo_com.csr

comandoCSR.png
comandoCSR.png


OPCIONAL
Una vez tenemos nuestro CSR, podemos comprobar que todo está correcto, visitando la siguiente Web , en ella, pegaremos el contenido de nuestro CSR (abierto con el bloc de notas) y nos saldrá algo así si todo está correcto (tener en cuenta que hay que copiar el csr íntegro, incluido las líneas de BEGIN y END):

checkeadorCSR.png
checkeadorCSR.png


TERCER PASO entidades certificadoras

Una vez tenemos nuestro CSR y JKS, necesitamos una entidad certificadora “oficial” que firme nuestro certificado (tipo notario).

Una entidad certificadora es aquella que COBRA por afirmar que tú eres quien dices ser, para que los usuarios tengan la seguridad de que acceden a la página web en cuestión y no a la de un posible impostor.

En nuestro caso hemos encontrado varias, pero a la hora de poder lograr obtener una “gratuita”, hemos tenido numerosos problemas, entre los que destacamos:

-Cifrado, pues algunas exigen mínimo 2048 y otras máximo 512 por ejemplo.

-Dominio en posesión y cuenta de correo como administrador de ese dominio.

-Por supuesto, todos son trials, pues cobran por ese servicio.

Algunas entidades certificadoras:
Verisign: (la que hemos usado).
Digicert: (de esta usamos su generador de csr).
CompleteSSL

Una vez enviado nuestro CSR a la entidad certificadora, si todo ha ido bien y aprueban nuestro pedido, nos llegará un correo como este, con las instrucciones y el certificado ya firmado por ellos:

respuestacert.png

Este es el certificado (para que sirva de ejemplo) que nos incluyen en el correo de confirmación ya firmado por la autoridad certificadora y listo para usar en nuestra web o donde proceda:
-----BEGIN CERTIFICATE-----
MIIF5TCCBM2gAwIBAgIQevfyvmLIVWcG2nvRrQvMujANBgkqhkiG9w0BAQUFADCB
yzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTAwLgYDVQQL
EydGb3IgVGVzdCBQdXJwb3NlcyBPbmx5LiAgTm8gYXNzdXJhbmNlcy4xQjBABgNV
BAsTOVRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vY3Bz
L3Rlc3RjYSAoYykwOTEtMCsGA1UEAxMkVmVyaVNpZ24gVHJpYWwgU2VjdXJlIFNl
cnZlciBDQSAtIEcyMB4XDTEzMTEwNTAwMDAwMFoXDTEzMTIwNTIzNTk1OVowggEN
MQswCQYDVQQGEwJFUzEQMA4GA1UECBMHU2V2aWxsYTEQMA4GA1UEBxQHU2V2aWxs
YTEXMBUGA1UEChQOQWxmb25zb3lDYXJsb3MxIzAhBgNVBAsUGkRlc3BsaWVndWUg
ZGUgQXBsaWNhY2lvbmVzMTkwNwYDVQQLFDBUZXJtcyBvZiB1c2UgYXQgd3d3LnZl
cmlzaWduLmVzL2Nwcy90ZXN0Y2EgKGMpMDUxIjAgBgNVBAsTGUF1dGhlbnRpY2F0
ZWQgYnkgVmVyaVNpZ24xJzAlBgNVBAsTHk1lbWJlciwgVmVyaVNpZ24gVHJ1c3Qg
TmV0d29yazEUMBIGA1UEAxQLNzg4Ny5ob2wuZXMwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQCjyjrMoc3tREZ7B5pdkHPysevZBUkU1shlz8gqn27a25DG
eZbUMS0jTPsNeu7NWB5YPPYLhQdwq9/usoOmsITacrigFIfbhYQslyrAgQln1hwm
aL7vJoH56OMMfRVL8e3fN/NJSUNY2TXukeUk8o0Mn+1kZFqgmd23JD3gEAEFaDKY
kTeT0x9Xk/5CVA2r1YmW4Rk09Xawhd1wrkrxV0Hd1xVHn89mSmue6bQVWrQurFnP
vPkxcaApf93ip2WP6/cdreVMxFeVq+6596boP9BP7aNbbe2gxLtRWeh2SnIk4QoV
6FI675hU8JkyWC9GmbD8R4njk+/osBb+5Bw5lDmnAgMBAAGjggF+MIIBejAWBgNV
HREEDzANggs3ODg3LmhvbC5lczAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIFoDBD
BgNVHR8EPDA6MDigNqA0hjJodHRwOi8vU1ZSVHJpYWwtRzItY3JsLnZlcmlzaWdu
LmNvbS9TVlJUcmlhbEcyLmNybDBKBgNVHSAEQzBBMD8GCmCGSAGG+EUBBxUwMTAv
BggrBgEFBQcCARYjaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2Nwcy90ZXN0Y2Ew
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFCgXE4q9
1qK13AYst7aO2hBmYG7lMHQGCCsGAQUFBwEBBGgwZjAkBggrBgEFBQcwAYYYaHR0
cDovL29jc3AudmVyaXNpZ24uY29tMD4GCCsGAQUFBzAChjJodHRwOi8vU1ZSVHJp
YWwtRzItYWlhLnZlcmlzaWduLmNvbS9TVlJUcmlhbEcyLmNlcjANBgkqhkiG9w0B
AQUFAAOCAQEAwv2GrnxeNqBdtbs4Bw/+75QaG5JOnhmwrsqGUZTPqHzEMSYa5TAs
SIli/a4SeG4viHEsrGALyc15v+4CLlFttGReWszoKz1l8CWNnoURjjUHaTh4yekS
Dp9MUS+Iux3of1/DmclRzFE2FgNVTxgAMyA8oGTQ4gZ1kinWLTCW9mSfqv4fAHQQ
bqykCbDo435zVe8ntI4IFtcVTf+BAZCGTKnvYa46HovYIrUn61jDXWqPTNG3aAPM
u0Rzuvx5ZxXLhtQiE42mkKSUJGOB5O+JjQHMGYovLZtpJqkmYsCLlq1sBXd4Lj3e
Kh9iLOyGczRz8VjgKTHscRgQxGXJxiGaew==
-----END CERTIFICATE-----