Como obtener un Wildcard SSL de Let’s Encrypt

En versiones anteriores, no podía usar certificados Let’s Encrypt gratuitos para proteger subdominios. Si no solo tenía «dominio.cu», sino también «forum.dominio.cu», tenía que emitir dos certificados. Ahora puede obtener solo un certificado de Comodín. ¡Y todavía es gratis!
El 14 de marzo, Let’s Encrypt lanzó ACMEv2 que permite emitir certificados Wildcard.
Let’s Encrypt es la única autoridad de certificación que emite certificados SSL gratuitos. Si su sitio web requiere un certificado SSL solo para la conexión HTTPS, Let’s Encrypt es la solución ideal para usted.

Ubiquemos que tenemos una red donde tenemos

  • Firewall que puede ser Pfsense, iptables, Kerio, lo que desees, su funcion sera redireccionar todo trafico que llege a el por el puerto 80 o 443 hasta la pc que hara la funcion de proxy inverso.
  • Una pc para el proxy inverso o que es la pc que en este caso trabajaremos, en este caso lo instalaremos con Ubuntu 16.04 en caso de usar otra distro pueden ver en esta direccion los pasos a seguir para instalarlo https://certbot.eff.org
  • Usaremos el dominio -> dominio.cu

Bueno, manos a la obra, a la hora de sacar el certificado hacemos lo siguiente:

Limpiamos los paquetes que tenemos instalado en nuestra pc que no son necesarios

Configuramos los locales

Actualizamos la lista de paquetes

Instalamos el soporte para los ppa

Agregamos el repositorio de certbot (Let’s Encrypt)

Actualizamos la lista de paquetes incluyendo ahora los repositorios de certbot

Instalamos el cliente de certbot

Pasamo a crear el certificado

Al ejecutar lo siguiente nos muestra algo parecido a esto

  1. Pidiendote un Email donde te notificaran cuando debes renovar el dominio
  2. Si aceptas que ese correo se puesto en una Base de datos de la EFF
  3. Te manda a crear un registro tipo TXT en tu DNS con los datos siguientes
    _acme-challenge.dominio.cu IN TXT «kzVNNLb5zvWxxiW30WbdD54OMYO5gbXRmqmpKPHihmQ»
  4. Mientras estes crees el registro en el DNS no puedes cerrar la creacion del certificado ya que el mismo cada vez que inicia cambia el value del registro
  5. Verifica que el registro en el DNS este ya puesto y genera el certificado

Mas menos lo que ven a continuacion:

Parte 2 Instalar nuestro NGINX

Instalamos el servidor de nginx

Creamos un archivo en blanco

Ponemos la configuracion siguiente

En este archivo lo usaremos para despues hacerle el include al virtualhost que queremos darle acceso a estos IP, en este caso lo usaremos para publicar webs o serviciso que solo estaran disponible para la red cubana

Ahora configuraremos el Certificado, como ahora tenemos un certificado que es *.dominio.cu podremos usar un mismo ssl para todos los dominios

Una vez configurado esto debemos poner los archivos que mencionamos anteriormente que son:
/var/www/favicon.ico El Favicon que tendran las webs
/var/www/50x.html Plantilla Web para el error 502 Bad Gateway
/var/www/403.html Plantilla Web para el error 403 Forbidden o Acceso Denegado

Tambien en ese archivo pusimos cuales son los metodos permitidos en nuestra web, en este caso pusimos los basicos GET, HEAD y POST si necesitas habilitar alguno otro es solo agregarlo ahi, el estado 444 lo que hace es cerrar la conexion.

Creamos el Strong Diffie-Hellman Group

Ahora agregamos algunas seguridades y bloqueos de Useragent

Ahora pasamos a configurar el virtual Host

Ahora un ejemplo de configuracion del virtualhost que solamente tendra acceso desde las IP que agregamos en el archivo /etc/nginx/cuba.conf

Nota:Como notaran este virtualhost no tiene el parametro de default_server ya que este mismo se define para el virtualhost principal que escuchara el servicio, es decir si ponemos ese parametro al virtualhost download cuando traten de acceder al servidor poniendo la ip del mismo en el navegador lo que le cargara es lo que esta en el virtualhost

Habilitamos el VirtualHost

Comprobamos que la configuracion de Nginx esta bien

Nos debe mostrar algo como esto

Si todo esta bien reiniciamos nginx

Para renovar el certificado desafortunadamente, certbot renew no funciona con el modo manual. Para obtener un certificado renovado, simplemente vuelva a ejecutar el comando que utilizó para emitir el certificado en primer lugar, y seleccione la opción «replace existing certificate» si se le solicita.

y ya tiene listo tu sitio web con Let’s Encrypt para todo tu dominio y subdominios

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 6

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Armando Felipe Fuentes Denis 82 artículos
Director de Infraestructura en Guajiritos S.R.L.

8 comentarios

  1. Google Chrome 88.0.4324.182 Google Chrome 88.0.4324.182 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36

    Bro, Buenas tardes. Llevo días y horas buscando lo mismo pero para Ubuntu 20.04 Apache (No Nginx). Ya instalé mi certificado según los tutoriales de Certbot, entre otros. Lo hice con Route 53. Si entro a mi página todo está Ok. Certificado SSL Válido. Pero no veo que sea un Wildcard. Parece un certificado normal.

    Podrás hacerte un tutorial con este sistema?

  2. Google Chrome 87.0.4280.88 Google Chrome 87.0.4280.88 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36

    necesario que el dominio para el cual se va a generar el certificado sea resuelto desde internet, o puede ser un dominio interno (ej dentro de una VPN)?
    Saludos

Responder a Yoandris Leyva Cancelar la respuesta

Tu dirección de correo electrónico no será publicada.


*