Инсталирайте сертификати със заместващи символи от Lets Encrypt в Nginx на Ubuntu 19.04

През март 2018 г. Let's Encrypt добави поддръжка за заместващи сертификати. Сертификатите със заместващи символи ви позволяват да защитите всички поддомейни от първо ниво на домейн с един сертификат. Сертификатите за заместващи символи се получават само чрез ACMEv2, който е актуализирана версия на протокола ACME. За да използвате ACMEv2 за сертификати със заместващи символи или без заместващи символи, ще ви е необходим клиент, който е актуализиран, за да поддържа ACMEv2. Един такъв клиент е acme.sh, който е клиент на протокола ACME/ACMEv2, написан чисто на език Shell (Unix shell) без никакви зависимости. Освен това домейните с заместващи знаци трябва да бъдат валидирани с помощта на типа предизвикателство DNS-01. Това означава, че трябва да промените DNS TXT записи, за да докажете контрол върху домейн, за да получите сертификат за заместващ знак.

В това ръководство обясняваме как да получите и разположите безплатни сертификати за заместващи символи от Let's Encrypt на Ubuntu 19.04 чрез използване на acme.shклиент, инструмент Lexicon за автоматично манипулиране на DNS записи чрез използване на Vultr API и внедряване на сертификати на уеб сървъра на Nginx.

Изисквания

  • Наскоро внедрен Ubuntu 19.04 Vultr облачен сървър.
  • Имате регистрирано име на домейн. Това ръководство използва example.comкато примерен домейн.
  • Уверете се, че сте задали A/AAAA и CNAME DNS записи за вашето напълно квалифицирано име на домейн (FQDN). Може да пожелаете да се консултирате с урок Въведение в Vultr DNS, ако трябва да се запознаете с концепциите за DNS.
  • Достъпът до Vultr API е активиран в контролния панел на вашия акаунт на Vultr.

Преди да започнеш

Проверете версията на Ubuntu.

lsb_release -ds
# Ubuntu 19.04

Създайте нов потребителски акаунт с sudoдостъп и предпочитаното от вас потребителско име и превключете към него. Ние използваме johndoe.

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

ЗАБЕЛЕЖКА : Заменете johndoeс вашето потребителско име.

Настройте часовата зона.

sudo dpkg-reconfigure tzdata

Уверете се, че вашата Ubuntu система е актуална.

sudo apt update && sudo apt upgrade -y

Инсталирайте необходимите пакети.

sudo apt install -y git wget curl socat

Инсталирайте Nginx

Инсталирайте уеб сървъра на Nginx.

sudo apt install -y nginx

Проверете версията.

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

Инсталирайте Python и Lexicon

Като първа стъпка в процеса на получаване на заместващи сертификати от Let's Encrypt с помощта на acme.sh и Vultr API, трябва да инсталирате Python и Lexicon . Lexicon е пакет на Python, който предоставя начин за манипулиране на DNS записи на множество DNS доставчици по стандартизиран начин.

Инсталирайте Python, ако все още не е инсталиран във вашата система.

sudo apt install -y python3

Потвърдете инсталацията, като проверите версията.

python3 --version
# Python 3.7.3

Инсталирайте инструмента Lexicon. Лексиконът е инструмент на Python, който ви позволява да манипулирате DNS записи на различни DNS доставчици по стандартизиран начин.

sudo apt install -y lexicon

Проверете версията на Lexicon.

lexicon --version
# lexicon 3.0.8

Инсталирайте acme.shклиент

Acme.shе клиент на ACME протокол, написан изцяло на език Shell (Unix shell), който автоматизира процеса на получаване на подписан сертификат чрез Let's Encrypt. Той поддържа ACME v1 и ACME v2 и най-важното е, че поддържа ACME v2 заместващи сертификати. В този раздел инсталираме скрипт Acme.sh.

ЗАБЕЛЕЖКА: Препоръчително е да използвате 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 "your_email@example.com"
source ~/.bashrc
cd

Проверете версията.

acme.sh --version
# v2.8.2

Вземете заместващи сертификати от Let's Encrypt

За да получим сертификат за заместващ знак, можем да използваме само метода за проверка на DNS. Ние използваме Lexicon и Vultr DNS API за манипулиране на TXT DNS записи.

Получете RSA и ECC заместващи сертификати за вашия домейн.

# 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

ЗАБЕЛЕЖКА : Не забравяйте да замените example.comс името на вашия домейн и заменете стойностите на заместващия елемент на Vultr API със свои собствени.

След като изпълните предходните команди, вашите сертификати и ключове са в:

  • За RSA: ~/.acme.sh/example.comдиректория.
  • За ECC/ECDSA: ~/.acme.sh/example.com_eccдиректория.

ЗАБЕЛЕЖКА : Не трябва да използвате cert файловете в ~/.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"

След като успешно получихме сертификати за заместващи символи от Let's Encrypt, трябва да конфигурираме уеб сървъра на Nginx. Всички сертификати се подновяват автоматично на всеки 60 дни.

След като получите и инсталирате сертификати на предпочитаното от вас местоположение, можете да излезете от rootпотребител до обикновен sudoпотребител и да продължите да управлявате сървъра си, като използвате, sudoако е необходимо.

exit

Конфигурирайте уеб сървъра на Nginx

Стартирайте 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/

Тествайте конфигурацията на Nginx.

sudo nginx -t

Презаредете Nginx.

sudo systemctl reload nginx.service

Това е. Внедрихме заместващи сертификати в Nginx, използвайки acme.sh, Lexicon и Vultr API. Заместващите сертификати могат да бъдат полезни, когато искате да защитите множество поддомейни от първо ниво, генерирани динамично.

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече