Installera Wildcard-certifikat från Lets Encrypt i Nginx på Ubuntu 19.04

I mars 2018 lade Let's Encrypt till stöd för jokerteckencertifikat. Jokerteckencertifikat låter dig säkra alla underdomäner på första nivån för en domän med ett enda certifikat. Jokerteckencertifikat kan endast erhållas via ACMEv2, som är en uppdaterad version av ACME-protokollet. För att använda ACMEv2 för jokertecken eller icke-jokerteckencertifikat behöver du en klient som har uppdaterats för att stödja ACMEv2. En sådan klient är acme.sh, som är en ACME/ACMEv2-protokollklient skriven enbart i Shell-språket (Unix-skal) utan några beroenden. Dessutom måste jokerteckendomäner valideras med DNS-01-utmaningstypen. Det innebär att du måste ändra DNS TXT-poster för att bevisa kontroll över en domän för att få ett jokerteckencertifikat.

I den här guiden förklarar vi hur man skaffar och distribuerar gratis jokerteckencertifikat från Let's Encrypt på Ubuntu 19.04 genom att använda acme.shklient, Lexicon- verktyg för automatisk manipulering av DNS-poster genom att konsumera Vultr API och distribuera certifikat till Nginx webbserver.

Krav

  • Nyinstallerad Ubuntu 19.04 Vultr molnserver.
  • Du har ett registrerat domännamn. Den här guiden använder example.comsom exempeldomän.
  • Se till att du har angett A/AAAA och CNAME DNS-poster för ditt Fully Qualified Domain Name (FQDN). Du kanske vill konsultera Introduktion till Vultr DNS-handledning om du behöver bekanta dig med DNS-koncept.
  • Vultr API-åtkomst aktiverad i ditt Vultr-kontokontrollpanel.

Innan du börjar

Kontrollera Ubuntu-versionen.

lsb_release -ds
# Ubuntu 19.04

Skapa ett nytt användarkonto med sudoåtkomst och ditt föredragna användarnamn och byt till det. Vi använder johndoe.

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

OBS : Ersätt johndoemed ditt användarnamn.

Ställ in tidszonen.

sudo dpkg-reconfigure tzdata

Se till att ditt Ubuntu-system är uppdaterat.

sudo apt update && sudo apt upgrade -y

Installera nödvändiga paket.

sudo apt install -y git wget curl socat

Installera Nginx

Installera Nginx webbserver.

sudo apt install -y nginx

Kontrollera versionen.

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

Installera Python och Lexicon

Som ett första steg i processen att skaffa jokerteckencertifikat från Let's Encrypt med hjälp av acme.sh och Vultr API, måste du installera Python och Lexicon . Lexicon är ett Python-paket som ger ett sätt att manipulera DNS-poster på flera DNS-leverantörer på ett standardiserat sätt.

Installera Python om det inte redan är installerat på ditt system.

sudo apt install -y python3

Bekräfta installationen genom att verifiera versionen.

python3 --version
# Python 3.7.3

Installera Lexicon-verktyget. Ett lexikon är ett Python-verktyg som låter dig manipulera DNS-poster på olika DNS-leverantörer på ett standardiserat sätt.

sudo apt install -y lexicon

Kontrollera Lexicon-versionen.

lexicon --version
# lexicon 3.0.8

Installera acme.shklient

Acme.shär en ACME-protokollklient skriven enbart i Shell-språk (Unix-skal) som automatiserar processen att få ett signerat certifikat via Let's Encrypt. Den stöder ACME v1 och ACME v2, och viktigast av allt stöder den ACME v2 jokertecken-certifikat. I det här avsnittet installerar vi ett Acme.sh-skript.

OBS: Det rekommenderas att använda rootanvändaren för att installera acme.sh, även om det inte kräver root/ sudoåtkomst.

Byt till rootanvändare från den vanliga användaren om du har skapat den.

sudo su - root

Ladda ner och installera acme.sh.

git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "your_email@example.com"
source ~/.bashrc
cd

Kontrollera versionen.

acme.sh --version
# v2.8.2

Skaffa jokerteckencertifikat från Let's Encrypt

För att få ett jokerteckencertifikat kan vi endast använda DNS-valideringsmetoden. Vi använder Lexicon och Vultr DNS API för att manipulera TXT DNS-poster.

Skaffa RSA- och ECC-jokerteckencertifikat för din domän.

# Configure your API key and username
export PROVIDER=vultr
export LEXICON_VULTR_USERNAME="your_vultr_email@example.com"
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

OBS : Glöm inte att ersätta example.commed ditt domännamn och byt ut Vultr API-platshållarvärdena med dina egna.

Efter att ha kört de föregående kommandona finns dina certifikat och nycklar i:

  • För RSA: ~/.acme.sh/example.comkatalog.
  • För ECC/ECDSA: ~/.acme.sh/example.com_ecckatalog.

OBS : Du bör inte använda cert-filerna i ~/.acme.sh/mappen, de är endast för intern användning, katalogstrukturen kan ändras i framtiden.

För att lista dina certifikat kan du köra:

acme.sh --list

Skapa en mapp för att lagra dina certifikat i produktion. Vi använder /etc/letsencryptkatalog.

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

Installera/kopiera certifikat för produktionsanvändning på din 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"

Nu när vi framgångsrikt har erhållit jokerteckencertifikat från Let's Encrypt måste vi konfigurera Nginx webbserver. Alla certifikat förnyas automatiskt var 60:e dag.

Efter att ha erhållit och installerat certifikat på din föredragna plats kan du logga ut från rootanvändare till en vanlig sudoanvändare och fortsätta att hantera din server genom att använda sudoom det behövs.

exit

Konfigurera Nginx webbserver

Kör sudo vim /etc/nginx/sites-available/example.com.confoch fyll filen med följande innehåll. Ersätt alla förekomster av example.commed ditt eget domännamn.

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;

}

Aktivera den nya example.com.confkonfigurationen genom att länka filen till sites-enabledkatalogen.

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

Testa Nginx-konfiguration.

sudo nginx -t

Ladda om Nginx.

sudo systemctl reload nginx.service

Det är allt. Vi distribuerade jokerteckencertifikat till Nginx med hjälp av acme.sh, Lexicon och Vultr API. Wildcard-certifikat kan vara användbara när du vill säkra flera underdomäner på första nivån som genereras dynamiskt.

Lämna en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer