Siempre aprendo algo genial en los momentos menos inesperados.
Podría decir que ha sido después de una intensa investigación, pero no sería verdad. Una llamada por Skype de mi amigo @alfa2514 y un…
“- ¿Sabías que…?” ¡Han sido suficientes para conseguir HTTPS gratis en mi web!
Aviso
Ojo, no pensemos que vamos a tener HTTPS por todas partes sin parar, gracias a esta asociación tenemos acceso a un HTTPS por persona y web (que por lo que he entendido luego no podría cambiar a otra web, aunque se renueva anualmente)
También nos van a pedir un montón de datos que es mejor que sean totalmente válidos.
No va a valerte un hosting compartido, necesitas al menos un VPS (hasta donde yo se)
¿Pero funciona funciona? Pues la web de @alfa2514 -> desrack.com parece que no tiene ningún problema, pero… ¡Vamos a ponerlo en HelpDev.org!
Tener HTTPS gratis
Primero de todo entramos a la web Startssl, en el menú de la izquierda pulsa sobre Start SSL Products y luego en Start SSL Free, aquí vas a encontrar la información relacionada con este tipo de certificado.
Vayamos ahora a Control panel situado en la parte superior derecha y de las 3 opciones pulsamos Express.
Rellena el formulario con tus datos correctos y pulsa en continue.
Nos van a pedir un código que acaban de enviarnos por correo, lo ponemos y otra vez continue.
Para variar en esta ocasión pulsaremos continue cuando nos diga que va a generar una clave privada.
Ya queda menos, pulsa install.
¿Que está pasando?
En este punto nuestro navegador está autenticado con nuestro nuevo certificado y podemos iniciar sesión en las StartSSL authentication areas usándolo.
Ahora nos pulsamos en continue y ya nos pide un dominio, yo prefiero la vista clásica con lo cual he pulsado en el botón superior derecho de Classic View y después en Validations Wizard en este punto deberías ver lo siguiente.
Importante: Ahora en el selector selecciona DOMAIN Name Validation y pulsa continue.
Escribimos nuestro dominio y adivina.. continue.
Escoge al correo que quieres que te escriban para validarte, aparecen unos por defecto más el que tienes en el whois.
Repetimos el paso del código de verificación con el que han enviado a este correo.
Te prometo que ya queda poco… ahora pulsamos en Certificates Wizard y seleccionas la misma opción que en la siguiente imagen.
Pon una contraseña para el certificado que solo sepas tú y pulsa en continue
Veremos un textarea con un código que debemos guardar, abre tu bloc de notas, y guárdalo cómo ssl.key
Continuamos, nos pedirá para que dominio queremos añadir el certificado, solo tenemos uno, en mi caso helpdev.org y continuamos.
Ahora viene un punto interesante, podemos añadir este certificado a un subdominio de la web, lo normal es poner www pero podéis poner otro si queréis.
Veremos otro textarea, en este caso hacemos cómo en el anterior pero el archivo se llamará ssl.crt
El siguiente paso va a ser seleccionar Toolbox en el menú, pulsamos sobre Starcom CA Certificates.
De la ventana que se abre nos interesa clicar con el botón derecho y guardar cómo lo siguiente.
Class 1 Intermediate Server CA. -> sub.class1.server.ca.pem
StartCom Root CA (PEM Encoded) -> ca.pem
¡Por fin tenemos nuestro certificado!
Instalando el certificado en un servidor
Una vez lo tenemos, debemos instalarlo, en el caso de mi servidor que es un CentOS con un panel Parallels Plesk y seguiré los siguientes pasos.
Primero subimos los archivos a una carpeta.
Nos conectamos por SSH mediante un terminal y desencriptamos ssl.key utilizando este comando
openssl rsa -in ssl.key -out private.key
Ahora voy al panel plesk e instalo los certificados.
(Nota: ca.crt o ca.pem no hay problema)
Entramos en Home Tools IpAdresses y asociamos el certificado con nuestro dominio
Reiniciamos el servidor Apache y.. ¡Listo!
Bonus
Cada año vamos a tener que renovar nuestro certificado, para no tener problemas te recomiendo exportar y guardar el certificado que instalamos en nuestro navegador, ya que nos lo va a pedir al renovar.
También es interesante hacer que siempre que entren a http://tuweb vayan directamente a https://tuweb, para ello en mi caso lo hago modificando el .htaccess y añadiendo:
RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Por último comentar una vez más que nada de esto hubiera podido ser sin @alfa2514 me ha ayudado mucho en todo esto y sobretodo me ha guiado para poder tener mi certificado y hacer el artículo, ¡Le debemos todos una ronda!