Захтеви
Пре него што почнете
Инсталирајте Нгинк
Инсталирајте Питхон и Лекицон
Инсталирајте ацме.сх клијент
Набавите џокер сертификате од Лет'с Енцрипт
Конфигуришите Нгинк веб сервер
У марту 2018. Лет'с Енцрипт је додао подршку за џокер сертификате. Џокер сертификати вам омогућавају да обезбедите све поддомене првог нивоа домена са једним сертификатом. Вилдцард сертификати се могу добити само преко АЦМЕв2, који је ажурирана верзија АЦМЕ протокола. Да бисте користили АЦМЕв2 за џокер сертификате или сертификате без џокера, биће вам потребан клијент који је ажуриран да подржава АЦМЕв2. Један такав клијент је ацме.сх, који је клијент АЦМЕ/АЦМЕв2 протокола написан искључиво у Схелл (Уник схелл) језику без икаквих зависности. Штавише, џокер домени морају бити валидирани коришћењем типа изазова ДНС-01. То значи да морате да измените ДНС ТКСТ записе да бисте доказали контролу над доменом да бисте добили џокер сертификат.
У овом упутству, ми објашњавају како да добијете и примену бесплатне џокер Цертс из Хајде да Енцрипт на Убунту 19.04 помоћу acme.sh
клијента, Лекицон алат за аутоматско манипулацију ДНС записима конзумирањем Вултр АПИ и распореди Цертс на веб нгинк.
Захтеви
- Свеже распоређени Убунту 19.04 Вултр сервер у облаку.
- Имате регистровано име домена. Овај водич користи
example.com
као пример домена.
- Уверите се да сте подесили А/АААА и ЦНАМЕ ДНС записе за потпуно квалификовано име домена (ФКДН). Можда ћете желети да погледате водич Увод у Вултр ДНС ако желите да се упознате са ДНС концептима.
- Вултр АПИ приступ је омогућен на контролној табли вашег Вултр налога.
Пре него што почнете
Проверите верзију Убунтуа.
lsb_release -ds
# Ubuntu 19.04
Креирајте нови кориснички налог са sudo
приступом и жељеним корисничким именом и пребаците се на њега. Користимо johndoe
.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe
НАПОМЕНА : Замените johndoe
својим корисничким именом.
Подесите временску зону.
sudo dpkg-reconfigure tzdata
Уверите се да је ваш Убунту систем ажуриран.
sudo apt update && sudo apt upgrade -y
Инсталирајте потребне пакете.
sudo apt install -y git wget curl socat
Инсталирајте Нгинк
Инсталирајте Нгинк веб сервер.
sudo apt install -y nginx
Проверите верзију.
sudo nginx -v
# nginx version: nginx/1.15.9 (Ubuntu)
Инсталирајте Питхон и Лекицон
Као први корак у процесу добијања џокер сертификата од Лет'с Енцрипт користећи ацме.сх и Вултр АПИ, потребно је да инсталирате Питхон и Лекицон . Лекицон је Питхон пакет који пружа начин да се манипулише ДНС записима на више ДНС провајдера на стандардизован начин.
Инсталирајте Питхон ако већ није инсталиран на вашем систему.
sudo apt install -y python3
Потврдите инсталацију тако што ћете проверити верзију.
python3 --version
# Python 3.7.3
Инсталирајте алатку Лекицон. Лексикон је Питхон алат који вам омогућава да манипулишете ДНС записима на различитим ДНС провајдерима на стандардизован начин.
sudo apt install -y lexicon
Проверите верзију Лексикона.
lexicon --version
# lexicon 3.0.8
Инсталирај acme.sh
клијента
Acme.sh
је клијент АЦМЕ протокола написан искључиво у Схелл (Уник схелл) језику који аутоматизује процес добијања потписаног сертификата преко Лет'с Енцрипт. Подржава АЦМЕ в1 и АЦМЕ в2, и што је најважније подржава АЦМЕ в2 џокер сертификате. У овом одељку инсталирамо Ацме.сх скрипту.
НАПОМЕНА: Препоручује се коришћење root
корисника за инсталацију acme.sh
, иако не захтева root
/ sudo
приступ.
Пребаците се на root
корисника са редовног корисника ако сте га креирали.
sudo su - root
Преузмите и инсталирајте acme.sh
.
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "[email protected]"
source ~/.bashrc
cd
Проверите верзију.
acme.sh --version
# v2.8.2
Набавите џокер сертификате од Лет'с Енцрипт
Да бисмо добили џокер сертификат, можемо да користимо само метод провере ДНС-а. Користимо Лекицон и Вултр ДНС АПИ за манипулацију ТКСТ ДНС записима.
Набавите РСА и ЕЦЦ џокер сертификате за свој домен.
# 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
НАПОМЕНА : Не заборавите да замените example.com
својим именом домена и замените вредности чувара места Вултр АПИ-ја својим.
Након покретања претходних команди, ваши сертификати и кључеви су у:
- За РСА:
~/.acme.sh/example.com
именик.
- За ЕЦЦ/ЕЦДСА:
~/.acme.sh/example.com_ecc
именик.
НАПОМЕНА : Не би требало да користите церт датотеке у ~/.acme.sh/
фасцикли, оне су само за интерну употребу, структура директоријума се може променити у будућности.
Да бисте навели своје сертификате, можете покренути:
acme.sh --list
Направите фасциклу за чување сертификата у продукцији. Користимо /etc/letsencrypt
именик.
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Инсталирајте/копирајте сертификате за производну употребу на вашем серверу.
# 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"
Сада када смо успешно добили џокер сертификате од Лет'с Енцрипт, морамо да конфигуришемо Нгинк веб сервер. Сви сертификати се аутоматски обнављају сваких 60 дана.
Након добијања и инсталирања сертификата на жељену локацију, можете се одјавити са root
корисника на редовног sudo
корисника и наставити да управљате својим сервером користећи sudo
ако је потребно.
exit
Покрените sudo vim /etc/nginx/sites-available/example.com.conf
и попуните датотеку следећим садржајем. Замените сва појављивања example.com
са својим именом домена.
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;
}
Активирајте нову example.com.conf
конфигурацију повезивањем датотеке са sites-enabled
директоријумом.
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Тестирајте Нгинк конфигурацију.
sudo nginx -t
Поново учитај Нгинк.
sudo systemctl reload nginx.service
То је то. У Нгинк смо применили џокер сертификате, користећи ацме.сх, Лекицон и Вултр АПИ. Вилдцард сертификати могу бити корисни када желите да обезбедите више поддомена првог нивоа који се генеришу динамички.