Cómo crear e instalar un certificado ssl gratuito

Hoy les presento el servicio de encriptación Let’s encriptada que permite crear un certificado válido de forma gratuita.

Esto significa que su sitio podría ser usado en https. El protocolo https no sólo garantiza al usuario el uso del sitio real, sino que también asegura que la información se codifica haciendo seguro cualquier acceso con contraseña.

Let’s encrypt es un proyecto impulsado por Mozilla y apoyado por los principales actores de la web. Lo único que necesitas hacer es tener acceso total al lugar donde está instalado tu blog.

Explicaré cómo generar un certificado https libre manualmente.

Instalación de Certbot

Certbot es un programa que permite mantener y automatizar una serie de actividades para la generación y renovación de certificados.

En la instalación del paquete el paquete se distribuye como certbot, mientras que al ejecutar una instalación manual usando por ejemplo una versión CentOS 5 o 6 hacemos todos los pasos de instalación manual, el programa se llama letsencrypt-auto, pero es un alias de certbot.

Primero instalamos git y pitón.

  • CentOS y otros derivados de Red Hat: sudo yum install git python -y
  • Derivados de Debian: sudo apt-get install git python -y

Con Git descargamos las fuentes del programa con el siguiente comando:

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Las fuentes se descargarán en la carpeta /opt/letsencrypt.

Para verificar que funciona, lo lanzamos:

/opt/letsencrypt/letsencrypt-auto --versión

El programa certbot será ejecutable directamente si se instala con un paquete, pero al realizar la descarga manual lo usaremos con la nomenclatura /opt/letsencrypt/letsencrypt-auto

En este punto para generar el certificado podemos lanzar un comando similar a este:

Generar el certificado HTTPS de forma gratuita

En este punto para generar el certificado lanzar un comando similar:

sudo /opt/letsencrypt/letsencrypt-auto -email mioindirizzo@gmail.com -agree-tos certonly -webroot -w /var/www/semprefacile.it -d semprefacile.it -d www.semprefacile.it

  • --email mioindirizzo@gmail.com: es la dirección de correo electrónico que se utilizará para diversas comunicaciones de servicio, incluyendo la expiración del certificado. Que debe ser renovado cada 90 días.
  • --que acepte los términos del servicio
  • Ciertamente: sólo quieres crear un certificado HTTPS, la instalación en Apache se hace manualmente.
  • --webroot: identifica el método de verificación de la identidad
  • -w /var/www/semprefacile.it: debe ser reemplazado por el camino DocumentRoot o el camino básico de apache.
  • -d semprefacile.it -d www.semprefacile.it: indica los dominios para los que se solicita el certificado. Es correcto aplicar tanto para www como para no www.

Esperemos que el certificado HTTPS se cree en una subcarpeta de /etc/letsencrypt/live/ que lleve el nombre de dominio que indicamos en la línea de comandos. así que en nuestro caso será

/etc/letsencrypt/live/emprefacile.it/

Dentro de esta carpeta se encuentran los 4 archivos del certificado!

Instalación de HTTPS en el apache

Primero tienes que instalar las bibliotecas para habilitar ssh en apache. El módulo es mod_ssl.

  • CentOS: sudo yum install openssl mod_ssl -y
  • Ubuntu: sudo apt-get install openssl mod_ssl -y

Reiniciar el servicio para hacer efectivos los cambios

  • para CentOS: servicio de sudo httpd reinicio
  • Ubuntu: sudo restart apache2

Instalación del certificado

Si apache no tiene configurado ningún host virtual, puede cambiar la configuración directamente en el host virtual por defecto

  • para CentOS: /etc/httpd/ssl.conf
  • para Ubuntu: /etc/apache2/sites-available/default-ssl

Edita el archivo y edita las líneas haciendo los siguientes cambios:

El motor SSLE está encendido.

Protocolo SSL Todo -SSLv2 -SSLv3

SSLHonorCipherOrder On

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-CAMELLIA128-SHA256:ECDHE-ECDSA-CAMELLIA128-SHA256:ECDHE-RSA-CAMELLIA256-SHA384:ECDHE-ECDSA-CAMELLIA256-SHA384:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-RSA-CAMELLIA256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:CAMELLIA128-SHA:CAMELLIA256-SHA:DHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA

SSLCertificateKeyFile /etc/letsencrypt/live/several.it/privkey.pem

SSLCertificateFile /etc/letsencrypt/live/semprefacile.it/cert.pem

SSLCertificateChainFile /etc/letsencrypt/live/semprefacile.it/chain.pem

Haga efectivos los cambios recargando la configuración:

  • para CentOS: sudo servicio httpd recarga
  • Ubuntu: sudo reload apache2

Prueba de funcionamiento del SSL

Ahora intentemos abrir el sitio con la dirección https y notaremos que el sitio está correctamente configurado con un certificado válido.

Renovación del certificado

Los certificados HTTPS de Let’s Encrypt tienen una duración bastante corta: sólo 90 días. Esto significa que deben ser renovados antes de la fecha límite. (un crontab puede ser automatizado)

Para renovar, debes ejecutar un comando como

  • CentOS: sudo/opt/letsencrypt/letsencrypt-auto renovar && sudo servicio httpd recargar
  • Ubuntu: sudo/opt/letsencrypt/letsencrypt-auto renovar && sudo recargar apache2

Sin embargo, si la operación quiere llevarse a cabo mucho antes, podemos utilizar el parámetro –force-renew para anticipar la generación del certificado.

  • para CentOS: sudo/opt/letsencrypt/letsencrypt-auto renew --force-renew && sudo service httpd reload
  • Ubuntu: sudo/opt/letsencrypt/letsencrypt-auto renew --force-renew && sudo reload apache2

Al final de la ejecución se lee Felicitaciones, todas las renovaciones tuvieron éxito. entonces la operación se completó con éxito.

Podemos inspeccionar el certificado para ver si después de los comandos bajo esos certificados están con una nueva fecha de caducidad.

(para mostrar el certificado si utiliza el cromo puede abrir las herramientas para desarrolladores y de seguridad, luego el certificado de viasualizza)

Para archivar un crontab podría introducir un comando yendo a editar crontab-e y luego introducir una nueva línea de este tipo.

30 1 1 2,4,6,8,10,12 * /opt/letsencrypt/letsencrypt-auto renew -force-renew && sudo service httpd reload

Cada dos meses, el primero del mes a la 1:30 a.m. realizaremos la renovación del certificado.

Prueba de seguridad SSL

Hemos realizado una prueba en el servicio gratuito de prueba de servidores SSL y el certificado instalado tiene un rango A.