Hoy en día es casi obligatorio el uso de certificado SSL en tu página. Una conexión segura es más que importante para tus usuarios. Sin embargo esto representa un costo adicional para mantener tu sitio. En este post te mostrare como agregar HTTPS gratis a tu página.
Para ello vamos a utilizar un certificado de Let’s Encrypt que es una autoridad de certificados SSL gratuitos. Con este certificado la toda información que viaje desde y hacia nuestra página web va a ser protegida.
Sin embargo, hay dos desventajas con estos certificados. Es gratis, así que este es el precio que debes pagar por ello. La primera es que no es compatible con navegadores viejos y tampoco es soportado por algunos proveedores de hosting. A pesar de esto va a servir para la mayoría de los casos. La segunda es que es válida solo por 3 meses, así que hay que renovarlo en este tiempo. Pero no te preocupes, aquí voy a explicar como hacerlo.
Y ciertamente hay que tener algunos conocimientos técnicos, pero no es difícil.
1. Primer paso - Generar certificado
1.1. Ingresar información
Ingresa a zerossl.com y selecciona la opción "online tools" y luego "Free SSL certificate Wizard".
Ingresamos un correo, el dominio principal y el subdominio www, aceptamos los términos y damos clic en "next".
Nos va a generar un archivo CSR que debes descargar y guardar en un sitio seguro. Ahora damos nuevamente clic en "next". y sobre el mismo formulario, nos va a generar un archivo KEY que también debes descargar y guardar en un sitio seguro.
Después de descargar los 2 archivos, de nuevo, clic en "next".
1.2 Verificar dominio
Ahora vamos a comprobar que tenemos acceso al hosting donde esta nuestro sitio. Nos aparece una lista de archivos que debemos subir al hosting por cada dominio/subdominio que agreguemos. Para esto descargamos los archivos y los subimos mediante FTP, cPanel, SCP o cualquier método con el que accedas al sistema de archivos del hosting. Ten en cuenta que no puedes cambiar el nombre de los archivos.
Debes crear una carpeta llamada ".well-known" en la raíz del sitio. Dentro de ella una carpeta llamada "acme-challenge". Y dentro de ella es donde debes subir los archivos. Una vez cargados verifica que los archivos sean accesibles desde la web ingresando a http://midominio.com/.well_known/acme_challenge/<nombredelarchivo>.
Clic en "next". Si por algún motivo falla la validación debido a que los archivos no son accesibles via web, debes volver a la pantalla de inicio de zerossl.com, pegar el contenido de los archivos CRS y KEY en los campos correspondientes y volver a generar, descargar y subir al hosting los archivos de verificación.
1.3. Descargar certificado
Si todo sale bien ¡ya tienes tu certificado!. Descarga los 2 archivos domain certificate (domain-crt.txt) y domain key (domain-key.txt).
2. Paso dos - Instalar
Ahora vamos a configurar el certificado en el hosting. Para este caso voy a mostrar como hacerlo mediante cPanel en Godaddy que es la opción de hosting más popular (no la mejor).
Una vez dentro de cPanel vamos a la sección "Security" opción "SSL / TLS".
Ahora en la sección "Install and Manage SSL for your site (HTTPS)" selecciona "Manage SSL sites".
Si tienes certificados instalados aquí te aparecerá la lista. Busca el formulario con el título "Install an SSL Website".
Selecciona el dominio.
En el primer campo "Certificate: (CRT)" debes pegar el contenido del archivo domain-crt.txt. Si te fijas este archivo tiene 2 partes. Debes pegar solamente la primera. Desde la primera linea "-----BEGIN CERTIFICATE-----" hasta la primera linea "-----END CERTIFICATE-----" incluyéndolas.
El segundo campo "Private Key (KEY)" pega TODO el contenido del archivo domain-key.txt. No te confundas con el archivo account-key.txt.
En el tercer campo "Certificate Authority Bundle: (CABUNDLE)" debes pegar la segunda parte del archivo domain-crt.txt. Desde la segunda linea "-----BEGIN CERTIFICATE-----" hasta la segunda linea "-----END CERTIFICATE-----" incluyéndolas.
Clic en instalar y listo!. Si agregas https:// antes de tu dominio accederás de manera segura.
3. Último paso - Redireccionar http a https
Antes de reiderccionar a https debes asegurarte que todos tus links dentro de la página a sitios internos o externos, imágenes, CSS, JavaScript, fuentes, etc. deben usar HTTPS. De lo contrario el navegador le mostrará una alerta al usuario indicando que el sitio no es seguro.
Para hacer la redirección utilizaremos el archivo .htaccess. Crealo en la raiz de tu sitio si no existe y agrega estas lineas y reemplaza midominio.com por tu dominio:
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteCond %{HTTP_HOST} ^(www\.)?midominio\.com RewriteRule ^(.*)$ https://midominio.com/$1 [R,L]
Si ya tienes un archivo .htaccess debes agregar las últimas 3 lineas inmediatamente después de RewriteEngine On.
Listo ya tienes tu sitio seguro!.
Renovar certificado gratuito
Antes de cumplir 90 días de la vigencia del certificado SSL gratuito debes hacer la renovación. Los pasos son similares a los anteriores. Vamos a hacerlo.
1. Paso uno - Generar nuevo certificado
De los archivos que guardaste hace 3 meses vamos a utilizar account-key.txt y domain-csr.txt.
1.1. Ingresar información
Ingresa a zerossl.com y selecciona la opción "online tools" y luego "Free SSL certificate Wizard".
Esta vez no vas a ingresar ni tu correo ni el dominio. Solamente vas a pegar TODO el contenido de account-key.txt en el campo "Paste your Let's Encrypt key or leave it blank to generate." y TODO el contenido de domain-csr.txt en el campo "Paste your CSR or leave it blank to generate."
Acepta los términos y clic en "next".
1.2. Verificar dominio
Vamos a descargar los archivos de verificación y los subimos al hosting en la carpeta .well-known/acme-challenge.
Verificamos que se puedan acceder a través de la web y damos clic en "next".
1.3. Descargar certificado
Si todo sale bien ¡ya tienes tu certificado!. Descarga el archivo domain certificate (domain-crt.txt).
2. Paso dos - Instalar
Nos dirigimos a cPanel, sección "Security" opción "SSL / TLS".
Ahora en la sección "Install and Manage SSL for your site (HTTPS)" selecciona "Manage SSL sites".
Te va a aparecer la lista de certificados que tienes registrados. Busca el que vas a renovar y selecciona "update certificate".
Una vez en el formulario das clic en el botón "Autofill by domain". Esto te va a completar los campos con el certificado anterior.
Borra el contenido en el primer campo "Certificate: (CRT)" y pega el contenido del NUEVO archivo domain-crt.txt. Al igual que la primera vez debes pegar solamente la primera parte del contenido. Desde la primera linea "-----BEGIN CERTIFICATE-----" hasta la primera linea "-----END CERTIFICATE-----" incluyéndolas.
No hagas nada con segundo campo "Private Key (KEY)". Déjalo con el contenido que tiene.
Borra el contenido del tercer campo "Certificate Authority Bundle: (CABUNDLE)" y pega la segunda parte del NUEVO archivo domain-crt.txt. Desde la segunda linea "-----BEGIN CERTIFICATE-----" hasta la segunda linea "-----END CERTIFICATE-----" incluyéndolas.
Clic en instalar.
Listo! Ya has renovado tu certificado.
Para finalizar
Un poco extenso este tutorial pero cuando lo hagas vas a ver que es muy fácil. Como recomendación crea un recordatorio que te avise algunos días antes de que caduque el certificado. Y si haces esto en varios sitios trata de hacer la renovación de todos un mismo día. De esta manera agilizaras el proceso y no te tardaras mucho haciéndolo.
Es algo tedioso hacerlo cada 3 meses pero te estas ahorrando una suma considerable. Si es de tu elección pagar por un certificado, adelante. La opción que elijas esta bien.