Installer Wildcard-certifikater fra Lets Encrypt i Nginx på Ubuntu 19.04

I marts 2018 tilføjede Let's Encrypt understøttelse af wildcard-certifikater. Wildcard-certifikater giver dig mulighed for at sikre alle underdomæner på første niveau af et domæne med et enkelt certifikat. Wildcard-certifikater kan kun opnås gennem ACMEv2, som er en opdateret version af ACME-protokollen. For at bruge ACMEv2 til et jokertegn eller ikke-wildcard-certifikater, skal du bruge en klient, der er blevet opdateret til at understøtte ACMEv2. En sådan klient er acme.sh, som er en ACME/ACMEv2 protokolklient skrevet udelukkende i Shell (Unix shell) sprog uden nogen afhængigheder. Desuden skal wildcard-domæner valideres ved hjælp af DNS-01-udfordringstypen. Det indebærer, at du skal ændre DNS TXT-poster for at bevise kontrol over et domæne for at opnå et wildcard-certifikat.

I denne vejledning forklarer vi, hvordan man opnår og implementerer gratis wildcard-certifikater fra Let's Encrypt på Ubuntu 19.04 ved at bruge acme.shklient, Lexicon- værktøj til automatisk manipulation af DNS-poster ved at forbruge Vultr API og implementere certifikater til Nginx-webserveren.

Krav

  • Nyudviklet Ubuntu 19.04 Vultr cloud-server.
  • Du har et registreret domænenavn. Denne vejledning bruger example.comsom eksempel på domæne.
  • Sørg for, at du har indstillet A/AAAA og CNAME DNS-poster for dit fuldt kvalificerede domænenavn (FQDN). Du ønsker måske at konsultere Introduktion til Vultr DNS-tutorial, hvis du har brug for at sætte dig ind i DNS-koncepter.
  • Vultr API-adgang aktiveret i dit Vultr-kontokontrolpanel.

Før du begynder

Tjek Ubuntu-versionen.

lsb_release -ds
# Ubuntu 19.04

Opret en ny brugerkonto med sudoadgang og dit foretrukne brugernavn og skift til det. Vi bruger johndoe.

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

BEMÆRK : Erstat johndoemed dit brugernavn.

Indstil tidszonen.

sudo dpkg-reconfigure tzdata

Sørg for, at dit Ubuntu-system er opdateret.

sudo apt update && sudo apt upgrade -y

Installer de nødvendige pakker.

sudo apt install -y git wget curl socat

Installer Nginx

Installer Nginx-webserveren.

sudo apt install -y nginx

Tjek versionen.

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

Installer Python og Lexicon

Som et første trin i processen med at opnå wildcard-certifikater fra Let's Encrypt ved hjælp af acme.sh og Vultr API, skal du installere Python og Lexicon . Lexicon er en Python-pakke, der giver en måde at manipulere DNS-poster på flere DNS-udbydere på en standardiseret måde.

Installer Python, hvis det ikke allerede er installeret på dit system.

sudo apt install -y python3

Bekræft installationen ved at bekræfte versionen.

python3 --version
# Python 3.7.3

Installer Lexicon-værktøjet. Et leksikon er et Python-værktøj, der giver dig mulighed for at manipulere DNS-poster på forskellige DNS-udbydere på en standardiseret måde.

sudo apt install -y lexicon

Tjek Lexicon-versionen.

lexicon --version
# lexicon 3.0.8

Installer acme.shklient

Acme.sher en ACME protokol klient skrevet udelukkende i Shell (Unix shell) sprog, der automatiserer processen med at få et signeret certifikat via Let's Encrypt. Det understøtter ACME v1 og ACME v2, og vigtigst af alt understøtter det ACME v2 wildcard-certifikater. I dette afsnit installerer vi et Acme.sh-script.

BEMÆRK: Det anbefales at bruge rootbrugeren til at installere acme.sh, selvom det ikke kræver root/ sudoadgang.

Skift til rootbruger fra den almindelige bruger, hvis du har oprettet den.

sudo su - root

Download og installer 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

Tjek versionen.

acme.sh --version
# v2.8.2

Få wildcard-certifikater fra Let's Encrypt

For at opnå et wildcard-certifikat kan vi kun bruge DNS-valideringsmetoden. Vi bruger Lexicon og Vultr DNS API til at manipulere TXT DNS-poster.

Få RSA- og ECC-jokertegn-certifikater for dit domæne.

# 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

BEMÆRK : Glem ikke at erstatte example.commed dit domænenavn, og erstatte Vultr API-pladsholderværdierne med dine egne.

Efter at have kørt de foregående kommandoer, er dine certifikater og nøgler i:

  • For RSA: ~/.acme.sh/example.combibliotek.
  • For ECC/ECDSA: ~/.acme.sh/example.com_eccbibliotek.

BEMÆRK : Du bør ikke bruge cert-filerne i ~/.acme.sh/mappen, de er kun til intern brug, mappestrukturen kan ændre sig i fremtiden.

For at liste dine certifikater kan du køre:

acme.sh --list

Opret en mappe til at gemme dine certifikater i produktion. Vi bruger /etc/letsencryptmappe.

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

Installer/kopier certifikater til produktionsbrug 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 hvor vi har opnået wildcard-certifikater fra Let's Encrypt, skal vi konfigurere Nginx-webserveren. Alle certifikater fornyes automatisk hver 60. dag.

Efter at have opnået og installeret certifikater til din foretrukne placering, kan du logge ud fra rootbruger til en almindelig sudobruger og fortsætte med at administrere din server ved at bruge, sudohvis det kræves.

exit

Konfigurer Nginx-webserver

Kør sudo vim /etc/nginx/sites-available/example.com.confog udfyld filen med følgende indhold. Erstat alle forekomster af example.commed dit eget domænenavn.

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;

}

Aktiver den nye example.com.confkonfiguration ved at linke filen til sites-enabledmappen.

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

Test Nginx-konfiguration.

sudo nginx -t

Genindlæs Nginx.

sudo systemctl reload nginx.service

Det er det. Vi implementerede wildcard-certifikater til Nginx ved hjælp af acme.sh, Lexicon og Vultr API. Wildcard-certifikater kan være nyttige, når du ønsker at sikre flere underdomæner på første niveau genereret dynamisk.

Efterlad en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere