Instale Wildcard Certs de Lets Encrypt en Nginx en Ubuntu 19.04

En marzo de 2018, Let's Encrypt agregó soporte para certificados comodín. Los certificados comodín le permiten proteger todos los subdominios de primer nivel de un dominio con un solo certificado. Los certificados comodín solo se pueden obtener a través de ACMEv2, que es una versión actualizada del protocolo ACME. Para utilizar ACMEv2 para certificados comodín o no comodín, necesitará un cliente que se haya actualizado para admitir ACMEv2. Uno de esos clientes es acme.sh, que es un cliente de protocolo ACME / ACMEv2 escrito exclusivamente en lenguaje Shell (shell Unix) sin ninguna dependencia. Además, los dominios comodín deben validarse utilizando el tipo de desafío DNS-01. Eso implica que debe modificar los registros TXT de DNS para probar el control sobre un dominio y obtener un certificado comodín.

En esta guía, explicamos cómo obtener e implementar certificados comodín gratuitos de Let's Encrypt en Ubuntu 19.04 utilizando el acme.shcliente, la herramienta Lexicon para la manipulación automática de registros DNS mediante el consumo de la API de Vultr e implementar certificados en el servidor web Nginx.

Requisitos

  • Servidor en la nube Ubuntu 19.04 Vultr recientemente implementado.
  • Tienes un nombre de dominio registrado. Esta guía utiliza example.comcomo un dominio de ejemplo.
  • Asegúrese de haber establecido registros DNS A / AAAA y CNAME para su nombre de dominio completo (FQDN). Es posible que desee consultar el tutorial Introducción a DNS de Vultr si necesita familiarizarse con los conceptos de DNS.
  • Acceso a la API de Vultr habilitado en el panel de control de su cuenta de Vultr.

Antes de que empieces

Verifica la versión de Ubuntu.

lsb_release -ds
# Ubuntu 19.04

Cree una nueva cuenta de usuario con sudoacceso y su nombre de usuario preferido y cambie a ella. Nosotros usamos johndoe.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

NOTA : Reemplace johndoecon su nombre de usuario.

Configura la zona horaria.

sudo dpkg-reconfigure tzdata

Asegúrese de que su sistema Ubuntu esté actualizado.

sudo apt update && sudo apt upgrade -y

Instala los paquetes necesarios.

sudo apt install -y git wget curl socat

Instalar Nginx

Instale el servidor web Nginx.

sudo apt install -y nginx

Mira esta versión.

sudo nginx -v
# nginx version: nginx/1.15.9 (Ubuntu)

Instalar Python y Lexicon

Como primer paso en el proceso de obtener certificados comodín de Let's Encrypt usando acme.sh y Vultr API, debe instalar Python y Lexicon . Lexicon es un paquete de Python que proporciona una forma de manipular registros DNS en múltiples proveedores DNS de manera estandarizada.

Instale Python si aún no está instalado en su sistema.

sudo apt install -y python3

Confirme la instalación verificando la versión.

python3 --version
# Python 3.7.3

Instale la herramienta Lexicon. Un léxico es una herramienta de Python que le permite manipular registros DNS en varios proveedores de DNS de manera estandarizada.

sudo apt install -y lexicon

Verifique la versión de Lexicon.

lexicon --version
# lexicon 3.0.8

Instalar acme.shcliente

Acme.shes un cliente de protocolo ACME escrito exclusivamente en lenguaje Shell (shell Unix) que automatiza el proceso de obtener un certificado firmado a través de Let's Encrypt. Es compatible con ACME v1 y ACME v2, y lo más importante es que admite certificados comodín ACME v2. En esta sección, instalamos un script Acme.sh.

NOTA: Se recomienda utilizar el rootusuario para instalar acme.sh, aunque no requiere root/ sudoacceso.

Cambie al rootusuario del usuario normal si lo ha creado.

sudo su - root

Descargue e instale acme.sh.

git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "[email protected]"
source ~/.bashrc
cd

Mira esta versión.

acme.sh --version
# v2.8.2

Obtenga certificados comodín de Let's Encrypt

Para obtener un certificado comodín, solo podemos usar el método de validación DNS. Utilizamos Lexicon y Vultr DNS API para manipular los registros TXT DNS.

Obtenga certificados comodín RSA y ECC para su dominio.

# Configure your API key and username
export PROVIDER=vultr
export LEXICON_VULTR_USERNAME="[email protected]"
export LEXICON_VULTR_TOKEN="XXXXXXXXXXXXXXX"

# RSA 2048
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength 2048
# ECC 256
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength ec-256

NOTA : No olvide reemplazar example.comcon su nombre de dominio y reemplace los valores de marcador de posición de la API de Vultr con los suyos.

Después de ejecutar los comandos anteriores, sus certificados y claves están en:

  • Para RSA: ~/.acme.sh/example.comdirectorio.
  • Para ECC / ECDSA: ~/.acme.sh/example.com_eccdirectorio.

NOTA : No debe usar los archivos cert en la ~/.acme.sh/carpeta, son solo para uso interno, la estructura del directorio puede cambiar en el futuro.

Para enumerar sus certificados, puede ejecutar:

acme.sh --list

Cree una carpeta para almacenar sus certificados en producción. Usamos el /etc/letsencryptdirectorio

sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Instale / copie certificados para uso de producción en su servidor.

# RSA
acme.sh --install-cert -d example.com \
        --cert-file /etc/letsencrypt/example.com/cert.pem \
        --key-file /etc/letsencrypt/example.com/private.key \
        --fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
        --cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
        --key-file /etc/letsencrypt/example.com_ecc/private.key \
        --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

Ahora que hemos obtenido con éxito los certificados comodín de Let's Encrypt, necesitamos configurar el servidor web Nginx. Todos los certificados se renuevan automáticamente cada 60 días.

Después de obtener e instalar certificados en su ubicación preferida, puede cerrar sesión de rootusuario a sudousuario normal y continuar administrando su servidor mediante el uso sudosi es necesario.

exit

Configurar el servidor web Nginx

Ejecute sudo vim /etc/nginx/sites-available/example.com.confy complete el archivo con el siguiente contenido. Sustituya todas las apariciones de example.comcon su propio nombre de dominio.

server {

  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name example.com *.example.com;
  root /var/www/example.com;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

}

Active la nueva example.com.confconfiguración vinculando el archivo al sites-enableddirectorio.

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Probar la configuración de Nginx.

sudo nginx -t

Recargar Nginx.

sudo systemctl reload nginx.service

Eso es. Implementamos certificados comodín en Nginx, utilizando acme.sh, Lexicon y Vultr API. Los certificados comodín pueden ser útiles cuando desea asegurar múltiples subdominios de primer nivel generados dinámicamente.



Leave a Comment

Cómo instalar Blacklistd en FreeBSD 11.1

Cómo instalar Blacklistd en FreeBSD 11.1

Introducción Cualquier servicio que esté conectado a Internet es un objetivo potencial para ataques de fuerza bruta o acceso injustificado. Hay herramientas como fail2ba

How to Enable TLS 1.3 in Apache on Fedora 30

How to Enable TLS 1.3 in Apache on Fedora 30

Using a Different System? TLS 1.3 is a version of the Transport Layer Security (TLS) protocol that was published in 2018 as a proposed standard in RFC 8446

Configurar un Chroot en Debian

Configurar un Chroot en Debian

Este artículo le enseñará cómo configurar una cárcel chroot en Debian. Supongo que está utilizando Debian 7.x. Si está ejecutando Debian 6 u 8, esto puede funcionar, pero

Cómo configurar la autenticación de dos factores (2FA) para SSH en CentOS 6 usando Google Authenticator

Cómo configurar la autenticación de dos factores (2FA) para SSH en CentOS 6 usando Google Authenticator

Después de cambiar su puerto SSH, configurar el bloqueo de puertos y hacer otros ajustes para la seguridad SSH, quizás haya una forma más de protegerlo

Asegurando MongoDB

Asegurando MongoDB

MongoDB no es seguro por defecto. Si está instalando MongoDB y lo está iniciando sin configurarlo para la autenticación, lo pasará mal

Configure el cortafuegos sin complicaciones (UFW) en Ubuntu 14.04

Configure el cortafuegos sin complicaciones (UFW) en Ubuntu 14.04

La seguridad es crucial cuando ejecuta su propio servidor. Desea asegurarse de que solo los usuarios autorizados puedan acceder a su servidor, configuración y servicios. yo

Cómo instalar rkhunter en Ubuntu

Cómo instalar rkhunter en Ubuntu

Rkhunter es un software que encuentra rootkits en un servidor Linux. Los piratas informáticos instalan rootkits para que siempre puedan acceder al servidor. En este documento, usted b

How to Enable TLS 1.3 in Nginx on FreeBSD 12

How to Enable TLS 1.3 in Nginx on FreeBSD 12

Using a Different System? TLS 1.3 is a version of the Transport Layer Security (TLS) protocol that was published in 2018 as a proposed standard in RFC 8446

Habilitar mod_evasive en Apache

Habilitar mod_evasive en Apache

Mod_evasive es un módulo para Apache que toma medidas automáticamente cuando se detecta un ataque HTTP DoS o un ataque de fuerza bruta. Mod_evasive puede registrar un

Configure NGINX con ModSecurity en CentOS 6

Configure NGINX con ModSecurity en CentOS 6

En este artículo, explicaré cómo construir una pila LEMP protegida por ModSecurity. ModSecurity es un firewall de aplicación web de código abierto que es útil t

Asegurando NGINX del ataque Logjam en CentOS

Asegurando NGINX del ataque Logjam en CentOS

Bueno, hay otra vulnerabilidad SSL en la naturaleza. Técnicamente no es realmente una vulnerabilidad, es solo un agujero dentro del protocolo en el que confiamos o

Cómo deshabilitar SELinux en CentOS 7

Cómo deshabilitar SELinux en CentOS 7

SELinux, una abreviatura de Security-Enhanced Linux, es una mejora de seguridad para el sistema operativo Linux. Es un sistema de etiquetado que bloquea muchos sistemas.

How to Enable TLS 1.3 in Apache on FreeBSD 12

How to Enable TLS 1.3 in Apache on FreeBSD 12

Using a Different System? TLS 1.3 is a version of the Transport Layer Security (TLS) protocol that was published in 2018 as a proposed standard in RFC 8446

Usando Lets Encrypt en OpenBSD 6.1

Usando Lets Encrypt en OpenBSD 6.1

Ya no es necesario que nadie tenga que crear sus propios certificados SSL porque ahora puede obtener su propio certificado SSL válido y gratuito de Let

Vamos a cifrar: migrando desde TLS-SNI-01

Vamos a cifrar: migrando desde TLS-SNI-01

Lets Encrypt es un servicio gratuito que genera certificados para proteger su sitio web. Admite la generación de diferentes tipos de certificados, incluido

Cree un frontend HTML 5 RDP / SSH usando Guacamole en Ubuntu 16.04 LTS

Cree un frontend HTML 5 RDP / SSH usando Guacamole en Ubuntu 16.04 LTS

Introducción El objetivo de este tutorial es deshacerse de las conexiones SSH públicas y RDP públicas. Al colocar todo esto detrás de un cliente HTML5 muy conveniente

Puerto tocando en Debian

Puerto tocando en Debian

¿Usando un sistema diferente? Por ahora, probablemente haya cambiado su puerto SSH predeterminado. Aún así, los piratas informáticos pueden escanear fácilmente rangos de puertos para descubrir ese puerto, pero ingenio

Working with Linux Capabilities

Working with Linux Capabilities

Introduction Linux capabilities are special attributes in the Linux kernel that grant processes and binary executables specific privileges that are normall

Cómo cambiar el puerto SSH en CoreOS

Cómo cambiar el puerto SSH en CoreOS

Cambiar su puerto SSH puede ayudar a prevenir problemas de seguridad. En esta guía, aprenderá cómo cambiar el puerto SSH en CoreOS. Paso 1: cambiar el puerto SSH

How to Install Lets Encrypt SSL on CentOS 7 Running Apache Web Server

How to Install Lets Encrypt SSL on CentOS 7 Running Apache Web Server

Introduction In this tutorial, you will learn the procedure for installing the TLS/SSL certificate on the Apache web server. When finished, all traffi

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.

Singularidad tecnológica: ¿un futuro lejano de la civilización humana?

Singularidad tecnológica: ¿un futuro lejano de la civilización humana?

A medida que la ciencia evoluciona a un ritmo rápido, asumiendo muchos de nuestros esfuerzos, también aumentan los riesgos de someternos a una singularidad inexplicable. Lea, lo que la singularidad podría significar para nosotros.

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

El impacto de la inteligencia artificial en la atención médica 2021

El impacto de la inteligencia artificial en la atención médica 2021

La IA en la salud ha dado grandes pasos desde las últimas décadas. Por tanto, el futuro de la IA en el sector sanitario sigue creciendo día a día.