Nõuded
Enne alustamist
Installige Nginx
Installige Python ja Lexicon
Installige acme.sh klient
Hankige Let's Encryptist metamärgisertifikaadid
Nginxi veebiserveri konfigureerimine
2018. aasta märtsis lisas Let's Encrypt toe metamärkide sertifikaatidele. Metamärgisertifikaadid võimaldavad teil ühe sertifikaadiga kaitsta kõiki domeeni esimese taseme alamdomeene. Metamärgisertifikaadid on saadaval ainult ACMEv2 kaudu, mis on ACME protokolli uuendatud versioon. ACMEv2 kasutamiseks metamärgi või metamärgita sertifikaatide jaoks on teil vaja klienti, mida on värskendatud ACMEv2 toetamiseks. Üks selline klient on acme.sh, mis on ACME/ACMEv2 protokolli klient, mis on kirjutatud puhtalt Shelli (Unix shell) keeles ilma igasuguste sõltuvusteta. Lisaks tuleb metamärgiga domeene kinnitada DNS-01 väljakutse tüübi abil. See tähendab, et peate muutma DNS-i TXT-kirjeid, et tõestada metamärgisertifikaadi saamiseks domeeni kontrolli.
Selles juhendis selgitame, kuidas hankida ja juurutada tasuta metamärgisertifikaate rakendusest Let's Encrypt Ubuntu 19.04, kasutades acme.shklienditööriista Lexicon DNS-kirjete automaatseks manipuleerimiseks Vultr API-i tarbides ja serte Nginxi veebiserverisse juurutades.
Nõuded
- Värskelt juurutatud Ubuntu 19.04 Vultr pilvserver.
- Teil on registreeritud domeeninimi. Selles juhendis kasutatakse
example.comnäidisdomeeni.
- Veenduge, et olete oma Fully Qualified Domain Name (FQDN) jaoks määranud A/AAAA ja CNAME DNS-kirjed. Kui soovite DNS- i kontseptsioonidega tutvuda, võite tutvuda Vultri DNS-i sissejuhatusega .
- Vultr API juurdepääs on teie Vultri konto juhtpaneelil lubatud.
Enne alustamist
Kontrollige Ubuntu versiooni.
lsb_release -ds
# Ubuntu 19.04
Looge uus kasutajakonto, millel on sudojuurdepääs ja eelistatud kasutajanimi, ning lülituge sellele. Me kasutame johndoe.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe
MÄRKUS . Asendage johndoeoma kasutajanimega.
Seadistage ajavöönd.
sudo dpkg-reconfigure tzdata
Veenduge, et teie Ubuntu süsteem oleks ajakohane.
sudo apt update && sudo apt upgrade -y
Installige vajalikud paketid.
sudo apt install -y git wget curl socat
Installige Nginx
Installige Nginxi veebiserver.
sudo apt install -y nginx
Kontrolli versiooni.
sudo nginx -v
# nginx version: nginx/1.15.9 (Ubuntu)
Installige Python ja Lexicon
Esimese sammuna Let's Encryptilt metamärgisertifikaatide hankimise protsessis acme.sh ja Vultr API abil peate installima Python ja Lexicon . Lexicon on Pythoni pakett, mis võimaldab standardiseeritud viisil manipuleerida mitme DNS-i pakkuja DNS-kirjetega.
Installige Python, kui see pole teie süsteemi veel installitud.
sudo apt install -y python3
Kinnitage installimine, kontrollides versiooni.
python3 --version
# Python 3.7.3
Installige tööriist Lexicon. Leksikon on Pythoni tööriist, mis võimaldab teil standardiseeritud viisil manipuleerida erinevate DNS-i pakkujate DNS-kirjetega.
sudo apt install -y lexicon
Kontrollige Lexiconi versiooni.
lexicon --version
# lexicon 3.0.8
Installige acme.shklient
Acme.shon ACME protokolli klient, mis on kirjutatud puhtalt Shelli (Unix shell) keeles, mis automatiseerib allkirjastatud sertifikaadi hankimise protsessi Let's Encrypt kaudu. See toetab ACME v1 ja ACME v2 ning mis kõige tähtsam, see toetab ACME v2 metamärke. Selles jaotises installime skripti Acme.sh.
MÄRKUS. Installimiseks on soovitatav kasutada rootkasutajat acme.sh, kuigi see ei nõua root/ sudojuurdepääsu.
Lülituge roottavakasutajale, kui olete selle loonud.
sudo su - root
Laadige alla ja installige acme.sh.
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "[email protected]"
source ~/.bashrc
cd
Kontrolli versiooni.
acme.sh --version
# v2.8.2
Hankige Let's Encryptist metamärgisertifikaadid
Metamärgisertifikaadi saamiseks saame kasutada ainult DNS-i valideerimismeetodit. TXT DNS-kirjete töötlemiseks kasutame Lexiconi ja Vultr DNS API-t.
Hankige oma domeeni jaoks RSA ja ECC metamärgi sertifikaadid.
# 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
MÄRKUS . Ärge unustage asendada example.comoma domeeninimega ja asendada Vultr API kohatäite väärtused enda omadega.
Pärast eelmiste käskude käivitamist on teie sertifikaadid ja võtmed:
- RSA jaoks:
~/.acme.sh/example.comkataloog.
- ECC/ECDSA jaoks:
~/.acme.sh/example.com_ecckataloog.
MÄRKUS . Sertfaile ei tohiks kasutada ~/.acme.sh/kaustas, need on mõeldud ainult sisekasutuseks, kataloogistruktuur võib tulevikus muutuda.
Oma sertifikaatide loendisse lisamiseks võite käivitada:
acme.sh --list
Looge kaust oma sertide salvestamiseks tootmises. Kasutame /etc/letsencryptkataloogi.
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Installige/kopeerige oma serverisse tootmiseks kasutatavad sertifikaadid.
# 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"
Nüüd, kui oleme Let's Encryptilt edukalt metamärgisertifikaadid hankinud, peame konfigureerima Nginxi veebiserveri. Kõiki sertifikaate uuendatakse automaatselt iga 60 päeva järel.
Pärast sertide hankimist ja installimist oma eelistatud asukohta saate rootkasutajalt tavakasutajaks välja logida sudoja vajadusel jätkata oma serveri haldamist, kasutades seda sudo.
exit
Käivitage sudo vim /etc/nginx/sites-available/example.com.confja sisestage fail järgmise sisuga. Asendage kõik esinemised example.comoma domeeninimega.
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;
}
Aktiveerige uus example.com.confkonfiguratsioon, linkides faili sites-enabledkataloogiga.
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Testige Nginxi konfiguratsiooni.
sudo nginx -t
Laadige Nginx uuesti.
sudo systemctl reload nginx.service
See on kõik. Juurutasime Nginxis metamärgisertifikaadid, kasutades acme.sh, Lexicon ja Vultr API-sid. Metamärgiga serdid võivad olla kasulikud, kui soovite kaitsta mitut dünaamiliselt loodud esimese taseme alamdomeeni.