Mozilla y Google dejan de confiar en los certificados de WoSign y StartCom

Ayer era el ‘deadline’ para que startSSL solucionará el problema con sus certificados como se avisó desde octubre de 2016 y es posible que si disfrutabas de uno de sus certificados, gratuito o de pago, ayer tras las actualizaciones en Google Chrome y Mozilla Firefox te encontraras con que tu página web dejaba de ser confiable a pesar de viajar vía HTTPS.

Antes de la actualización de Mozilla Firefox aún se confiaba en StarSSL

Antes de la actualización de Mozilla Firefox aún se confiaba en StarSSL


Ha llegado pues la hora de pasarnos a Let’s Encrypt, una iniciativa gratuita y curiosa por la forma de implementación para TLSificar todo Internet de manos de la asociación ISRG:

Let’s Encrypt is a free, automated, and open certificate authority brought to you by the non-profit Internet Security Research Group (ISRG).

Let’s Encrypt Certificado SSL gratuito

Let’s Encrypt Certificado SSL gratuito

Cómo funciona

De momento os voy a describir el proceso o ‘how to’ para hacerlo si tenéis acceso al Shell de vuestro Servidor Web Linux, vía SSH, más adelante incorporaremos los tutoriales y vídeos para darlos de alta en otros entornos cómo los alojamientos compartidos (shared hosting). Si no te puedes esperar haz un poquito de RTFM en la documentación oficial.

PoC: Prueba de concepto dominio server.jblanco.org

En la consola/terminal y como root, nos vamos a la carpeta:

cd /usr/local/sbin

Descargamos el ejecutable:

wget https://dl.eff.org/certbot-auto

Damos permisos de ejecución (solo a root):

chmod u+x /usr/local/sbin/certbot-auto

Solicitamos el certificado:

certbot-auto --apache -d server.jblanco.org

Si quisierais pedir más certificados, poniendo siempre el dominio raíz delante, el procedimiento es el mismo pero añadiendo más dominios tras la opción ‘-d’:

certbot-auto --apache -d jblanco.org -d www.jblanco.org -d blog.jblanco.org -d aula.jblanco.org -d server.jblanco.org

Esto genera un certificado que valida HTTPS para los dominios y subdominios:

  1. jblanco.org
  2. www.jblanco.org
  3. blog.jblanco.org
  4. aula.jblanco.org
  5. server.jblanco.org

Si por alguna de aquellas no hubiese un Virtual Host definido en Apache2 con ServerName igual a los dominios elegidos se quejará.
Los certificados se dejan en la carpeta:

ls -l /etc/letsencrypt/live

Conviene comprobar la validez del dominio certificado desde esta página web:
https://www.ssllabs.com/ssltest/analyze.html?d=server.jblanco.org
Recuerda cambiar mi subdominio por el tuyo.

Salidas del proceso

Descarga del ejecutable:

wget https://dl.eff.org/certbot-auto
--2017-01-29 01:17:39--  https://dl.eff.org/certbot-auto
Resolviendo dl.eff.org (dl.eff.org)... 173.239.79.196
Conectando con dl.eff.org (dl.eff.org)[173.239.79.196]:443... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 46237 (45K) [application/octet-stream]
Grabando a: “certbot-auto”

100%[===================================================================================================================>] 46.237      --.-K/s   en 0,1s    

2017-01-29 01:17:41 (318 KB/s) - “certbot-auto” guardado [46237/46237]

Proceso de solicitud y verificación:

certbot-auto --apache -d server.jblanco.org
Bootstrapping dependencies for Debian-based OSes...
Obj http://ftp.debian.org wheezy Release.gpg
Obj http://ftp.debian.org wheezy Release            
Obj http://ftp.debian.org wheezy/main amd64 Packages                      
Obj http://ftp.debian.org wheezy/contrib amd64 Packages                                          
Obj http://ftp.debian.org wheezy/non-free amd64 Packages                                         
Obj http://ftp.debian.org wheezy/main i386 Packages                    
Obj http://ftp.debian.org wheezy/contrib i386 Packages                 
Obj http://ftp.debian.org wheezy/non-free i386 Packages                
Obj http://ftp.debian.org wheezy/contrib Translation-en                
Obj http://ftp.debian.org wheezy/main Translation-es                   
Obj http://ftp.debian.org wheezy/main Translation-en                   
Obj http://ftp.debian.org wheezy/non-free Translation-en               
Des:1 http://security.debian.org wheezy/updates Release.gpg [1.554 B]  
Des:2 http://security.debian.org wheezy/updates Release [39,0 kB]
Des:3 http://security.debian.org wheezy/updates/main amd64 Packages [465 kB]
Des:4 http://security.debian.org wheezy/updates/contrib amd64 Packages [14 B]
Des:5 http://security.debian.org wheezy/updates/non-free amd64 Packages [14 B]
Des:6 http://security.debian.org wheezy/updates/main i386 Packages [468 kB]
Des:7 http://security.debian.org wheezy/updates/contrib i386 Packages [14 B]
Des:8 http://security.debian.org wheezy/updates/non-free i386 Packages [14 B]
Des:9 http://security.debian.org wheezy/updates/contrib Translation-en [14 B]
Des:10 http://security.debian.org wheezy/updates/main Translation-en [256 kB]
Des:11 http://security.debian.org wheezy/updates/non-free Translation-en [14 B]
Descargados 1.230 kB en 3seg. (392 kB/s)
Leyendo lista de paquetes... Hecho
No LSB modules are available.
To use the Apache Certbot plugin, augeas needs to be installed from wheezy-backports.
Would you like to enable the wheezy-backports repository [Y/n]? Y
Obj http://ftp.debian.org wheezy Release.gpg
Obj http://security.debian.org wheezy/updates Release.gpg                 
Obj http://ftp.debian.org wheezy Release                                  
Obj http://security.debian.org wheezy/updates Release                                           
Obj http://ftp.debian.org wheezy/main amd64 Packages                                            
Obj http://ftp.debian.org wheezy/contrib amd64 Packages                
Obj http://security.debian.org wheezy/updates/main amd64 Packages                            
Obj http://ftp.debian.org wheezy/non-free amd64 Packages                                     
Obj http://security.debian.org wheezy/updates/contrib amd64 Packages                         
Obj http://ftp.debian.org wheezy/main i386 Packages                                          
Obj http://ftp.debian.org wheezy/contrib i386 Packages                                       
Obj http://security.debian.org wheezy/updates/non-free amd64 Packages                        
Obj http://ftp.debian.org wheezy/non-free i386 Packages                                      
Obj http://security.debian.org wheezy/updates/main i386 Packages                             
Obj http://ftp.debian.org wheezy/contrib Translation-en                                      
Obj http://ftp.debian.org wheezy/main Translation-es                                         
Obj http://security.debian.org wheezy/updates/contrib i386 Packages                          
Obj http://ftp.debian.org wheezy/main Translation-en                                         
Obj http://security.debian.org wheezy/updates/non-free i386 Packages                         
Obj http://ftp.debian.org wheezy/non-free Translation-en                                     
Obj http://security.debian.org wheezy/updates/contrib Translation-en                         
Obj http://security.debian.org wheezy/updates/main Translation-en         
Obj http://security.debian.org wheezy/updates/non-free Translation-en
Des:1 http://http.debian.net wheezy-backports Release.gpg [1.554 B]
Des:2 http://http.debian.net wheezy-backports Release [164 kB]
Des:3 http://http.debian.net wheezy-backports/main amd64 Packages [606 kB] 
Des:4 http://http.debian.net wheezy-backports/main i386 Packages [607 kB]  
Des:5 http://http.debian.net wheezy-backports/main Translation-en [376 kB]                            
Descargados 1.754 kB en 1seg. (1.368 kB/s)                                    
Leyendo lista de paquetes... Hecho
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Paquetes sugeridos:
  augeas-doc augeas-tools
Se instalarán los siguientes paquetes NUEVOS:
  augeas-lenses libaugeas0
0 actualizados, 2 se instalarán, 0 para eliminar y 60 no actualizados.
Necesito descargar 683 kB de archivos.
Se utilizarán 1.876 kB de espacio de disco adicional después de esta operación.
Des:1 http://http.debian.net/debian/ wheezy-backports/main augeas-lenses all 1.2.0-0.2+deb8u1~bpo70+1 [387 kB]
Des:2 http://http.debian.net/debian/ wheezy-backports/main libaugeas0 amd64 1.2.0-0.2+deb8u1~bpo70+1 [296 kB]
Descargados 683 kB en 0seg. (1.828 kB/s)
Seleccionando el paquete augeas-lenses previamente no seleccionado.
(Leyendo la base de datos ... 45131 ficheros o directorios instalados actualmente.)
Desempaquetando augeas-lenses (de .../augeas-lenses_1.2.0-0.2+deb8u1~bpo70+1_all.deb) ...
Seleccionando el paquete libaugeas0 previamente no seleccionado.
Desempaquetando libaugeas0 (de .../libaugeas0_1.2.0-0.2+deb8u1~bpo70+1_amd64.deb) ...
Configurando augeas-lenses (1.2.0-0.2+deb8u1~bpo70+1) ...
Configurando libaugeas0 (1.2.0-0.2+deb8u1~bpo70+1) ...
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
ca-certificates ya está en su versión más reciente.
gcc ya está en su versión más reciente.
fijado gcc como instalado manualmente.
python ya está en su versión más reciente.
openssl ya está en su versión más reciente.
Paquetes recomendados:
  libssl-doc python-pip
Se instalarán los siguientes paquetes NUEVOS:
  libexpat1-dev libffi-dev libssl-dev python-dev python-setuptools python-virtualenv python2.7-dev zlib1g-dev
0 actualizados, 8 se instalarán, 0 para eliminar y 10 no actualizados.
Necesito descargar 27,7 MB de archivos.
Se utilizarán 43,7 MB de espacio de disco adicional después de esta operación.
Des:1 http://ftp.debian.org/debian/ wheezy/main libffi-dev amd64 3.0.10-3 [116 kB]
Des:2 http://security.debian.org/ wheezy/updates/main libexpat1-dev amd64 2.1.0-1+deb7u4 [225 kB]
Des:3 http://ftp.debian.org/debian/ wheezy/main zlib1g-dev amd64 1:1.2.7.dfsg-13 [215 kB]
Des:4 http://ftp.debian.org/debian/ wheezy/main python-dev all 2.7.3-4+deb7u1 [920 B]
Des:5 http://security.debian.org/ wheezy/updates/main libssl-dev amd64 1.0.1t-1+deb7u1 [1.791 kB]
Des:6 http://ftp.debian.org/debian/ wheezy/main python-setuptools all 0.6.24-1 [449 kB]
Des:7 http://ftp.debian.org/debian/ wheezy/main python-virtualenv all 1.7.1.2-2 [2.121 kB]
Des:8 http://security.debian.org/ wheezy/updates/main python2.7-dev amd64 2.7.3-6+deb7u3 [22,8 MB]
Descargados 27,7 MB en 0seg. (38,8 MB/s) 
Seleccionando el paquete libexpat1-dev previamente no seleccionado.
(Leyendo la base de datos ... 45509 ficheros o directorios instalados actualmente.)
Desempaquetando libexpat1-dev (de .../libexpat1-dev_2.1.0-1+deb7u4_amd64.deb) ...
Seleccionando el paquete libffi-dev:amd64 previamente no seleccionado.
Desempaquetando libffi-dev:amd64 (de .../libffi-dev_3.0.10-3_amd64.deb) ...
Seleccionando el paquete zlib1g-dev:amd64 previamente no seleccionado.
Desempaquetando zlib1g-dev:amd64 (de .../zlib1g-dev_1%3a1.2.7.dfsg-13_amd64.deb) ...
Seleccionando el paquete libssl-dev previamente no seleccionado.
Desempaquetando libssl-dev (de .../libssl-dev_1.0.1t-1+deb7u1_amd64.deb) ...
Seleccionando el paquete python2.7-dev previamente no seleccionado.
Desempaquetando python2.7-dev (de .../python2.7-dev_2.7.3-6+deb7u3_amd64.deb) ...
Seleccionando el paquete python-dev previamente no seleccionado.
Desempaquetando python-dev (de .../python-dev_2.7.3-4+deb7u1_all.deb) ...
Seleccionando el paquete python-setuptools previamente no seleccionado.
Desempaquetando python-setuptools (de .../python-setuptools_0.6.24-1_all.deb) ...
Seleccionando el paquete python-virtualenv previamente no seleccionado.
Desempaquetando python-virtualenv (de .../python-virtualenv_1.7.1.2-2_all.deb) ...
Procesando disparadores para install-info ...
Procesando disparadores para man-db ...
Configurando libexpat1-dev (2.1.0-1+deb7u4) ...
Configurando libffi-dev:amd64 (3.0.10-3) ...
Configurando zlib1g-dev:amd64 (1:1.2.7.dfsg-13) ...
Configurando libssl-dev (1.0.1t-1+deb7u1) ...
Configurando python2.7-dev (2.7.3-6+deb7u3) ...
Configurando python-dev (2.7.3-4+deb7u1) ...
Configurando python-setuptools (0.6.24-1) ...
Configurando python-virtualenv (1.7.1.2-2) ...
Creating virtual environment...
Installing Python packages...
Installation succeeded.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):jblancov@gmail.com

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for server.jblanco.org
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
Deploying Certificate to VirtualHost /etc/apache2/sites-available/server.jblanco.org.conf

Please choose whether HTTPS access is required or optional.
-------------------------------------------------------------------------------
1: Easy - Allow both HTTP and HTTPS access to these sites
2: Secure - Make all requests redirect to secure HTTPS access
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Created redirect file: le-redirect-server.jblanco.org.conf
Rollback checkpoint is empty (no changes made?)

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://server.jblanco.org

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=server.jblanco.org
-------------------------------------------------------------------------------

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/server.jblanco.org/fullchain.pem. Your cert
   will expire on 2017-04-28. To obtain a new or tweaked version of
   this certificate in the future, simply run certbot-auto again with
   the "certonly" option. To non-interactively renew *all* of your
   certificates, run "certbot-auto renew"
 - If you lose your account credentials, you can recover through
   e-mails sent to jblancov@gmail.com.
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Si durante el proceso elegisteis la opción 2 para que todo el tráfico sea seguro y no permitir nada por HTTP en el Virtual Host que crea el proceso tendréis algo como esto:

lease choose whether HTTPS access is required or optional.
——————————————————————————-
1: Easy – Allow both HTTP and HTTPS access to these sites
2: Secure – Make all requests redirect to secure HTTPS access
——————————————————————————-
Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel): 2
Created redirect file: le-redirect-server.jblanco.org.conf

<VirtualHost *:80>
ServerName server.jblanco.org 
 
ServerSignature Off

RewriteEngine On
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent]

ErrorLog /var/log/apache2/redirect.error.log
LogLevel warn
</VirtualHost>

Y de momento esto es todo, ha sido un post de urgencia, ya que seguro que a más de uno os pasará que al actualizar los navegadores encontraréis un bonito pantallazo como este:

Tras la actualización y 'deadline' impuesto por Mozilla Firefox os encontraréis que ya no se confía en vuestro sitio

Tras la actualización y ‘deadline’ impuesto por Mozilla Firefox os encontraréis que ya no se confía en vuestro sitio

Comparte ya que seguro todo el mundo estará que trina!
Nos vemos en la próxima.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.