Kröfur
Áður en þú byrjar
Settu upp Nginx
Settu upp Python og Lexicon
Settu upp acme.sh viðskiptavin
Fáðu algildisvottorð frá Let's Encrypt
Stilla Nginx vefþjón
Í mars 2018 bætti Let's Encrypt við stuðningi við algildisskírteini. Wildcard vottorð gera þér kleift að tryggja öll fyrsta stig undirlén léns með einu vottorði. Algildisvottorð eru aðeins fáanleg í gegnum ACMEv2, sem er uppfærð útgáfa af ACME samskiptareglunum. Til að nota ACMEv2 fyrir jokertákn eða skírteini sem ekki eru með jokertákn, þarftu biðlara sem hefur verið uppfærður til að styðja ACMEv2. Einn slíkur viðskiptavinur er acme.sh, sem er ACME/ACMEv2 samskiptareglur viðskiptavinur sem er eingöngu skrifaður á Shell (Unix skel) tungumáli án nokkurra ósjálfstæðis. Ennfremur verða algildislén að vera staðfest með DNS-01 áskorunargerðinni. Það þýðir að þú þarft að breyta DNS TXT færslum til að sanna stjórn á léni til að fá algildisvottorð.
Í þessari handbók útskýrum við hvernig á að fá og dreifa ókeypis algildisvottorðum frá Let's Encrypt á Ubuntu 19.04 með því að nota acme.sh
biðlara, Lexicon tól fyrir sjálfvirka meðhöndlun á DNS færslum með því að neyta Vultr API og dreifa vottorðum á Nginx vefþjóninn.
Kröfur
- Nýuppsett Ubuntu 19.04 Vultr skýjaþjónn.
- Þú ert með skráð lén. Þessi handbók notar
example.com
sem dæmi um lén.
- Gakktu úr skugga um að þú hafir stillt A/AAAA og CNAME DNS færslur fyrir Fully Qualified Domain Name (FQDN). Þú gætir viljað skoða kynningu á Vultr DNS kennsluefni ef þú þarft að kynna þér DNS hugtök.
- Vultr API aðgangur virkur á Vultr reikningsstjórnborðinu þínu.
Áður en þú byrjar
Athugaðu Ubuntu útgáfuna.
lsb_release -ds
# Ubuntu 19.04
Búðu til nýjan notandareikning með sudo
aðgangi og valinn notandanafni og skiptu yfir í það. Við notum johndoe
.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe
ATH : Skiptu út johndoe
fyrir notendanafnið þitt.
Settu upp tímabeltið.
sudo dpkg-reconfigure tzdata
Gakktu úr skugga um að Ubuntu kerfið þitt sé uppfært.
sudo apt update && sudo apt upgrade -y
Settu upp nauðsynlega pakka.
sudo apt install -y git wget curl socat
Settu upp Nginx
Settu upp Nginx vefþjóninn.
sudo apt install -y nginx
Athugaðu útgáfuna.
sudo nginx -v
# nginx version: nginx/1.15.9 (Ubuntu)
Settu upp Python og Lexicon
Sem fyrsta skrefið í því ferli að fá algildisvottorð frá Let's Encrypt með acme.sh og Vultr API þarftu að setja upp Python og Lexicon . Lexicon er Python pakki sem veitir leið til að vinna með DNS færslur á mörgum DNS veitendum á staðlaðan hátt.
Settu upp Python ef það er ekki þegar uppsett á kerfinu þínu.
sudo apt install -y python3
Staðfestu uppsetninguna með því að staðfesta útgáfuna.
python3 --version
# Python 3.7.3
Settu upp Lexicon tólið. Lexicon er Python tól sem gerir þér kleift að vinna með DNS færslur á ýmsum DNS veitum á staðlaðan hátt.
sudo apt install -y lexicon
Athugaðu Lexicon útgáfuna.
lexicon --version
# lexicon 3.0.8
Settu upp acme.sh
viðskiptavin
Acme.sh
er ACME siðareglur viðskiptavinur skrifuð eingöngu á Shell (Unix skel) tungumáli sem gerir sjálfvirkan ferlið við að fá undirritað vottorð í gegnum Let's Encrypt. Það styður ACME v1 og ACME v2, og síðast en ekki síst styður það ACME v2 algildisskírteini. Í þessum hluta setjum við upp Acme.sh forskrift.
ATHUGIÐ: Mælt er með því að nota root
notanda til að setja upp acme.sh
, þó að það þurfi ekki root
/ sudo
aðgang.
Skiptu yfir í root
notanda frá venjulegum notanda ef þú hefur búið það til.
sudo su - root
Sækja og setja upp acme.sh
.
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "[email protected]"
source ~/.bashrc
cd
Athugaðu útgáfuna.
acme.sh --version
# v2.8.2
Fáðu algildisvottorð frá Let's Encrypt
Til að fá algildisvottorð getum við aðeins notað DNS staðfestingaraðferðina. Við notum Lexicon og Vultr DNS API til að vinna með TXT DNS færslur.
Fáðu RSA og ECC algildisvottorð fyrir lénið þitt.
# 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
ATH : Ekki gleyma að skipta example.com
út fyrir lénið þitt og skipta um Vultr API staðgengilsgildin fyrir þín eigin.
Eftir að hafa keyrt fyrri skipanir eru vottorðin þín og lyklar í:
- Fyrir RSA:
~/.acme.sh/example.com
skrá.
- Fyrir ECC/ECDSA:
~/.acme.sh/example.com_ecc
skrá.
ATHUGIÐ : Þú ættir ekki að nota cert skrárnar í ~/.acme.sh/
möppunni, þær eru eingöngu til innri notkunar, möppuuppbyggingin gæti breyst í framtíðinni.
Til að skrá vottorðin þín geturðu keyrt:
acme.sh --list
Búðu til möppu til að geyma vottorðin þín í framleiðslu. Við notum /etc/letsencrypt
möppu.
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Settu upp/afritaðu vottorð til framleiðslunotkunar á netþjóninum þínum.
# 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ú þegar við höfum náð góðum árangri með algildisvottorð frá Let's Encrypt, þurfum við að stilla Nginx vefþjón. Öll skírteinin eru endurnýjuð sjálfkrafa á 60 daga fresti.
Eftir að hafa fengið og sett upp vottorð á valinn stað geturðu skráð þig út úr root
notanda yfir í venjulegan sudo
notanda og haldið áfram að stjórna netþjóninum þínum með því að nota sudo
ef þörf krefur.
exit
Keyrðu sudo vim /etc/nginx/sites-available/example.com.conf
og fylltu út skrána með eftirfarandi efni. Skiptu út öllum tilvikum example.com
með þínu eigin lén.
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;
}
Virkjaðu nýju example.com.conf
stillingarnar með því að tengja skrána við sites-enabled
möppuna.
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Prófaðu Nginx stillingar.
sudo nginx -t
Endurhlaða Nginx.
sudo systemctl reload nginx.service
Það er það. Við sendum inn algildisvottorð til Nginx með því að nota acme.sh, Lexicon og Vultr API. Wildcard vottorð geta verið gagnleg þegar þú vilt tryggja mörg fyrsta stigs undirlén sem eru mynduð á kraftmikinn hátt.