Installa Wildcard Certs da Consente di crittografare in Nginx su Ubuntu 19.04

A marzo 2018 Let's Encrypt ha aggiunto il supporto per i certificati jolly. I certificati jolly ti consentono di proteggere tutti i sottodomini di primo livello di un dominio con un singolo certificato. I certificati jolly sono disponibili solo tramite ACMEv2, che è una versione aggiornata del protocollo ACME. Per utilizzare ACMEv2 per certificati jolly o non jolly, è necessario un client che sia stato aggiornato per supportare ACMEv2. Uno di questi client è acme.sh, che è un client di protocollo ACME / ACMEv2 scritto esclusivamente in linguaggio Shell (Unix shell) senza dipendenze. Inoltre, i domini jolly devono essere convalidati utilizzando il tipo di prova DNS-01. Ciò implica che è necessario modificare i record TXT DNS per dimostrare il controllo su un dominio per ottenere un certificato jolly.

In questa guida, spieghiamo come ottenere e distribuire certificati jolly gratuiti da Let's Encrypt su Ubuntu 19.04 utilizzando il acme.shclient, lo strumento Lexicon per la manipolazione automatica dei record DNS consumando l'API Vultr e distribuendo certificati sul server Web Nginx.

Requisiti

  • Server cloud Ubuntu 19.04 Vultr appena implementato.
  • Hai un nome di dominio registrato. Questa guida utilizza example.comcome dominio di esempio.
  • Assicurati di aver impostato i record DNS A / AAAA e CNAME per il tuo nome di dominio completo (FQDN). Potresti consultare il tutorial Introduzione a Vultr DNS se hai bisogno di familiarizzare con i concetti DNS.
  • Accesso API Vultr abilitato nel pannello di controllo dell'account Vultr.

Prima di iniziare

Controlla la versione di Ubuntu.

lsb_release -ds
# Ubuntu 19.04

Crea un nuovo account utente con sudoaccesso e il tuo nome utente preferito e passa ad esso. Usiamo johndoe.

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

NOTA : sostituisci johndoecon il tuo nome utente.

Imposta il fuso orario.

sudo dpkg-reconfigure tzdata

Assicurati che il tuo sistema Ubuntu sia aggiornato.

sudo apt update && sudo apt upgrade -y

Installa i pacchetti necessari.

sudo apt install -y git wget curl socat

Installa Nginx

Installa il web server Nginx.

sudo apt install -y nginx

Controlla la versione

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

Installa Python e Lexicon

Come primo passo nel processo di ottenimento dei certificati jolly da Let's Encrypt utilizzando acme.sh e l'API Vultr, è necessario installare Python e Lexicon . Lexicon è un pacchetto Python che fornisce un modo per manipolare i record DNS su più provider DNS in modo standardizzato.

Installa Python se non è già installato sul tuo sistema.

sudo apt install -y python3

Conferma l'installazione verificando la versione.

python3 --version
# Python 3.7.3

Installa lo strumento Lexicon. Un lessico è uno strumento Python che consente di manipolare i record DNS su vari provider DNS in modo standardizzato.

sudo apt install -y lexicon

Controlla la versione Lexicon.

lexicon --version
# lexicon 3.0.8

Installa acme.shclient

Acme.shè un client di protocollo ACME scritto esclusivamente in linguaggio Shell (Unix shell) che automatizza il processo di acquisizione di un certificato firmato tramite Let's Encrypt. Supporta ACME v1 e ACME v2 e, soprattutto, supporta i certificati jolly ACME v2. In questa sezione, installiamo uno script Acme.sh.

NOTA: si consiglia di utilizzare l' rootutente per l'installazione acme.sh, anche se non richiede root/ sudoaccesso.

Passa rootall'utente dall'utente normale se lo hai creato.

sudo su - root

Scarica e installa acme.sh.

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

Controlla la versione

acme.sh --version
# v2.8.2

Ottieni certificati jolly da Let's Encrypt

Per ottenere un certificato jolly, è possibile utilizzare solo il metodo di convalida DNS. Utilizziamo le API DNS Lexicon e Vultr per manipolare i record DNS TXT.

Ottieni certificati jolly RSA ed ECC per il tuo 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 : non dimenticare di sostituire example.comcon il tuo nome di dominio e sostituire i valori dei segnaposto dell'API Vultr con i tuoi.

Dopo aver eseguito i comandi precedenti, i certificati e le chiavi sono in:

  • Per RSA: ~/.acme.sh/example.comdirectory.
  • Per ECC / ECDSA: ~/.acme.sh/example.com_eccdirectory.

NOTA : non è necessario utilizzare i file cert nella ~/.acme.sh/cartella, sono solo per uso interno, la struttura della directory potrebbe cambiare in futuro.

Per elencare i tuoi certificati, puoi eseguire:

acme.sh --list

Crea una cartella per archiviare i certificati in produzione. Usiamo /etc/letsencryptdirectory.

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

Installa / copia i certificati per l'uso in produzione sul tuo server.

# 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"

Ora che abbiamo ottenuto correttamente i certificati jolly da Let's Encrypt, dobbiamo configurare il web server Nginx. Tutti i certificati vengono rinnovati automaticamente ogni 60 giorni.

Dopo aver ottenuto e installato certificati nella posizione preferita, è possibile disconnettersi da un rootutente a un sudoutente normale e continuare a gestire il server utilizzando, sudose necessario.

exit

Configurare il server Web Nginx

Esegui sudo vim /etc/nginx/sites-available/example.com.confe popola il file con il seguente contenuto. Sostituisci tutte le occorrenze di example.comcon il tuo nome di 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;

}

Attiva la nuova example.com.confconfigurazione collegando il file alla sites-enableddirectory.

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

Testare la configurazione di Nginx.

sudo nginx -t

Ricarica Nginx.

sudo systemctl reload nginx.service

Questo è tutto. Abbiamo distribuito certificati con caratteri jolly su Nginx, utilizzando acme.sh, Lexicon e Vultr API. I certificati con caratteri jolly possono essere utili quando si desidera proteggere più sottodomini di primo livello generati dinamicamente.



Leave a Comment

Come installare Blacklistd su FreeBSD 11.1

Come installare Blacklistd su FreeBSD 11.1

Introduzione Qualsiasi servizio connesso a Internet è un potenziale bersaglio di attacchi di forza bruta o accesso ingiustificato. Esistono strumenti come fail2ba

Come abilitare TLS 1.3 in Apache su Fedora 30

Come abilitare TLS 1.3 in Apache su Fedora 30

Usi un sistema diverso? TLS 1.3 è una versione del protocollo TLS (Transport Layer Security) che è stato pubblicato nel 2018 come standard proposto in RFC 8446

Configurare un Chroot su Debian

Configurare un Chroot su Debian

Questo articolo ti insegnerà come impostare una prigione chroot su Debian. Presumo che tu stia usando Debian 7.x. Se usi Debian 6 o 8, questo potrebbe funzionare, bu

Come impostare lautenticazione a due fattori (2FA) per SSH su CentOS 6 utilizzando Google Authenticator

Come impostare lautenticazione a due fattori (2FA) per SSH su CentOS 6 utilizzando Google Authenticator

Dopo aver modificato la porta SSH, configurato il port knocking e apportato altre modifiche per la sicurezza SSH, cè forse un altro modo per proteggerti

Protezione di MongoDB

Protezione di MongoDB

MongoDB non è sicuro per impostazione predefinita. Se stai installando MongoDB e lo avvii senza configurarlo per lautenticazione, avrai dei brutti momenti

Come installare rkhunter su Ubuntu

Come installare rkhunter su Ubuntu

Rkhunter è un software che trova rootkit su un server Linux. I rootkit sono installati dagli hacker in modo che possano sempre accedere al server. In questo documento, b

Crea un frontend HTML 5 RDP / SSH usando Guacamole su Ubuntu 16.04 LTS

Crea un frontend HTML 5 RDP / SSH usando Guacamole su Ubuntu 16.04 LTS

Introduzione Lobiettivo di questo tutorial è quello di sbarazzarsi delle connessioni SSH pubbliche e RDP pubbliche. Mettendo tutto questo dietro un client HTML5 molto conveniente

Abilitazione mod_evasive su Apache

Abilitazione mod_evasive su Apache

Mod_evasive è un modulo per Apache che agisce automaticamente quando viene rilevato un attacco DoS HTTP o un attacco di forza bruta. Mod_evasive è in grado di registrare un

Proteggere NGINX dallattacco Logjam su CentOS

Proteggere NGINX dallattacco Logjam su CentOS

Bene, cè unaltra vulnerabilità SSL in circolazione. Tecnicamente non è davvero una vulnerabilità, è solo un buco allinterno del protocollo su cui facciamo affidamento

Come installare OpenVAS Vulnerability Scanner su Ubuntu 16.04

Come installare OpenVAS Vulnerability Scanner su Ubuntu 16.04

Introduzione OpenVAS è una suite open source che può essere utilizzata per la scansione e la gestione delle vulnerabilità. Sta per Open Vulnerabilit

Come disabilitare SELinux su CentOS 7

Come disabilitare SELinux su CentOS 7

SELinux, unabbreviazione di Security-Enhanced Linux, è un miglioramento della sicurezza del sistema operativo Linux. È un sistema di etichettatura che blocca molti sistemi

Configura Apache con certificato TLS / SSL autofirmato su Ubuntu 16.04

Configura Apache con certificato TLS / SSL autofirmato su Ubuntu 16.04

SSL e il suo successore TLS (Secure Sockets Layer / Transport Layer Security) aggiungono un livello di crittografia tra il client e il server. Senza di te

Configura Uncomplicated Firewall (UFW) su Ubuntu 14.04

Configura Uncomplicated Firewall (UFW) su Ubuntu 14.04

La sicurezza è fondamentale quando si esegue il proprio server. Vuoi assicurarti che solo gli utenti autorizzati possano accedere al tuo server, configurazione e servizi. io

Come abilitare TLS 1.3 in Apache su FreeBSD 12

Come abilitare TLS 1.3 in Apache su FreeBSD 12

Usi un sistema diverso? TLS 1.3 è una versione del protocollo TLS (Transport Layer Security) che è stato pubblicato nel 2018 come standard proposto in RFC 8446

Utilizzando Lets Encrypt su OpenBSD 6.1

Utilizzando Lets Encrypt su OpenBSD 6.1

Non è più necessario che nessuno debba creare i propri certificati SSL perché ora puoi ottenere il tuo certificato SSL gratuito e valido da Let

Consente di crittografare: migrazione da TLS-SNI-01

Consente di crittografare: migrazione da TLS-SNI-01

Consente Encrypt è un servizio gratuito che genera certificati per proteggere il tuo sito Web. Supporta la generazione di diversi tipi di certificati, incluso

Come installare OSSEC HIDS su un server CentOS 7

Come installare OSSEC HIDS su un server CentOS 7

Introduzione OSSEC è un sistema di rilevamento delle intrusioni (HIDS) open-source e basato su host che esegue analisi dei log, controllo dellintegrità, registro di Windows

Modifica di Icinga2 per utilizzare il modello master / client su CentOS 6 o CentOS 7

Modifica di Icinga2 per utilizzare il modello master / client su CentOS 6 o CentOS 7

Icinga2 è un potente sistema di monitoraggio e, se utilizzato in un modello master-client, può sostituire la necessità di controlli di monitoraggio basati su NRPE. Il maestro-clien

Come abilitare TLS 1.3 in Nginx su FreeBSD 12

Come abilitare TLS 1.3 in Nginx su FreeBSD 12

Usi un sistema diverso? TLS 1.3 è una versione del protocollo TLS (Transport Layer Security) che è stato pubblicato nel 2018 come standard proposto in RFC 8446

Port Knocking su Debian

Port Knocking su Debian

Usando un sistema diverso? Ormai, probabilmente hai cambiato la tua porta SSH predefinita. Tuttavia, gli hacker possono facilmente scansionare gli intervalli di porte per scoprire quella porta, ma con arguzia

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.