Vaatimukset
Ennen kuin aloitat
Asenna Nginx
Asenna Python ja Lexicon
Asenna acme.sh asiakas
Hanki jokerimerkkisertifikaatit Let's Encryptistä
Määritä Nginx-verkkopalvelin
Maaliskuussa 2018 Let's Encrypt lisäsi tuen jokerimerkkivarmenteille. Jokerimerkkivarmenteiden avulla voit suojata verkkotunnuksen kaikki ensimmäisen tason aliverkkotunnukset yhdellä varmenteella. Jokerimerkkivarmenteita saa vain ACMEv2:n kautta, joka on ACME-protokollan päivitetty versio. Jotta voit käyttää ACMEv2:ta jokerimerkkejä tai ei-jokerimerkkejä sisältäviin varmenteisiin, tarvitset asiakasohjelman, joka on päivitetty tukemaan ACMEv2:ta. Yksi tällainen asiakas on acme.sh, joka on ACME/ACMEv2-protokollan asiakasohjelma, joka on kirjoitettu puhtaasti Shell-kielellä (Unix shell) ilman riippuvuuksia. Lisäksi jokerimerkkitoimialueet on tarkistettava DNS-01-haastetyypin avulla. Tämä tarkoittaa, että sinun on muokattava DNS TXT -tietueita, jotta voit todistaa hallitsevasi toimialuetta jokerimerkkivarmenteen saamiseksi.
Tässä oppaassa selitämme, kuinka voit hankkia ja ottaa käyttöön ilmaisia jokerimerkkivarmenteita Let's Encryptista Ubuntu 19.04:ssä käyttämällä acme.sh
asiakas-, Lexicon- työkalua DNS-tietueiden automaattiseen käsittelyyn Vultr API:n avulla ja ottaa käyttöön sertifikaatteja Nginx-verkkopalvelimelle.
Vaatimukset
- Juuri käyttöön otettu Ubuntu 19.04 Vultr -pilvipalvelin.
- Sinulla on rekisteröity verkkotunnus. Tämä opas käyttää
example.com
esimerkkiverkkotunnusta.
- Varmista, että olet asettanut A/AAAA- ja CNAME-DNS-tietueet Fully Qualified Domain Name (FQDN) -nimellesi. Voit tutustua Vultr DNS -opetusoppaaseen, jos haluat tutustua DNS-konsepteihin.
- Vultr API -käyttö on käytössä Vultr-tilisi ohjauspaneelissa.
Ennen kuin aloitat
Tarkista Ubuntu-versio.
lsb_release -ds
# Ubuntu 19.04
Luo uusi käyttäjätili, jolla on sudo
pääsy ja haluamasi käyttäjätunnus, ja vaihda siihen. Me käytämme johndoe
.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe
HUOMAA : Korvaa johndoe
käyttäjätunnuksellasi.
Aseta aikavyöhyke.
sudo dpkg-reconfigure tzdata
Varmista, että Ubuntu-järjestelmäsi on ajan tasalla.
sudo apt update && sudo apt upgrade -y
Asenna tarvittavat paketit.
sudo apt install -y git wget curl socat
Asenna Nginx
Asenna Nginx-verkkopalvelin.
sudo apt install -y nginx
Tarkista versio.
sudo nginx -v
# nginx version: nginx/1.15.9 (Ubuntu)
Asenna Python ja Lexicon
Ensimmäisenä vaiheena jokerimerkkivarmenteiden hankkimisessa Let's Encryptistä acme.sh:n ja Vultr API:n avulla sinun on asennettava Python ja Lexicon . Lexicon on Python-paketti, joka tarjoaa tavan käsitellä useiden DNS-palveluntarjoajien DNS-tietueita standardoidulla tavalla.
Asenna Python, jos sitä ei ole vielä asennettu järjestelmääsi.
sudo apt install -y python3
Vahvista asennus tarkistamalla versio.
python3 --version
# Python 3.7.3
Asenna Lexicon-työkalu. Sanasto on Python-työkalu, jonka avulla voit käsitellä eri DNS-palveluntarjoajien DNS-tietueita standardoidulla tavalla.
sudo apt install -y lexicon
Tarkista Lexicon-versio.
lexicon --version
# lexicon 3.0.8
Asenna acme.sh
asiakas
Acme.sh
on ACME-protokollan asiakasohjelma, joka on kirjoitettu puhtaasti Shell-kielellä (Unix shell) ja joka automatisoi allekirjoitetun varmenteen saamisen Let's Encryptin kautta. Se tukee ACME v1:tä ja ACME v2:ta, ja mikä tärkeintä, se tukee ACME v2 jokerimerkkivarmenteita. Tässä osiossa asennamme Acme.sh-komentosarjan.
HUOMAUTUS: On suositeltavaa käyttää root
käyttäjää asentaaksesi acme.sh
, vaikka se ei vaadi root
/ sudo
pääsyä.
Vaihda root
käyttäjäksi tavallisesta käyttäjästä, jos olet luonut sen.
sudo su - root
Lataa ja asenna acme.sh
.
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "[email protected]"
source ~/.bashrc
cd
Tarkista versio.
acme.sh --version
# v2.8.2
Hanki jokerimerkkisertifikaatit Let's Encryptistä
Jokerimerkkivarmenteen saamiseksi voimme käyttää vain DNS-tarkistusmenetelmää. Käytämme Lexiconia ja Vultr DNS API:a TXT DNS -tietueiden käsittelyyn.
Hanki RSA- ja ECC-jokerimerkit verkkotunnuksellesi.
# 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
HUOMAA : Älä unohda korvata example.com
verkkotunnuksesi nimellä ja korvaa Vultr API:n paikkamerkkiarvot omillasi.
Edellisten komentojen suorittamisen jälkeen varmenteesi ja avaimesi ovat:
- RSA:
~/.acme.sh/example.com
hakemisto.
- ECC/ECDSA:
~/.acme.sh/example.com_ecc
hakemisto.
HUOMAA : Älä käytä ~/.acme.sh/
kansiossa olevia cert-tiedostoja , ne ovat vain sisäiseen käyttöön, hakemistorakenne saattaa muuttua tulevaisuudessa.
Voit luetella sertifikaatit suorittamalla:
acme.sh --list
Luo kansio sertifikaattien tallentamiseksi tuotannossa. Käytämme /etc/letsencrypt
hakemistoa.
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Asenna/kopioi sertifikaatit tuotantokäyttöä varten palvelimellesi.
# 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"
Nyt kun olemme onnistuneesti saaneet jokerimerkkisertifikaatit Let's Encryptiltä, meidän on määritettävä Nginx-verkkopalvelin. Kaikki sertifikaatit uusitaan automaattisesti 60 päivän välein.
Kun olet hankkinut ja asentanut sertifikaatit haluamaasi sijaintiin, voit kirjautua ulos root
käyttäjästä tavalliseksi sudo
käyttäjäksi ja jatkaa palvelimesi hallintaa sudo
tarvittaessa käyttämällä .
exit
Suorita sudo vim /etc/nginx/sites-available/example.com.conf
ja täytä tiedosto seuraavalla sisällöllä. Korvaa kaikki esiintymät example.com
omalla verkkotunnuksellasi.
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;
}
Aktivoi uusi example.com.conf
kokoonpano linkittämällä tiedosto sites-enabled
hakemistoon.
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Testaa Nginx-kokoonpanoa.
sudo nginx -t
Lataa Nginx uudelleen.
sudo systemctl reload nginx.service
Se siitä. Otimme jokerimerkkisertifikaatit käyttöön Nginxissä käyttämällä acme.sh-, Lexicon- ja Vultr-sovellusliittymää. Jokerimerkkivarmenteista voi olla hyötyä, kun haluat suojata useita dynaamisesti luotuja ensimmäisen tason aliverkkotunnuksia.