Установите Wildcard Certs From Lets Encrypt в Nginx в Ubuntu 19.04

В марте 2018 года Let's Encrypt добавил поддержку подстановочных сертификатов. Сертификаты с подстановочными знаками позволяют защитить все дочерние домены первого уровня одним сертификатом. Подстановочные сертификаты можно получить только через ACMEv2, который является обновленной версией протокола ACME. Чтобы использовать ACMEv2 для подстановочных или не подстановочных сертификатов, вам потребуется клиент, обновленный для поддержки ACMEv2. Одним из таких клиентов является acme.sh, который является клиентом протокола ACME / ACMEv2, написанным исключительно на языке оболочки (оболочки Unix) без каких-либо зависимостей. Кроме того, домены с подстановочными знаками должны проверяться с использованием типа запроса DNS-01. Это означает, что вам нужно изменить записи DNS TXT, чтобы подтвердить контроль над доменом для получения сертификата с подстановочными знаками.

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

Требования

  • Недавно развернутый облачный сервер Ubuntu 19.04 Vultr.
  • У вас есть зарегистрированное доменное имя. Это руководство использует example.comв качестве примера домена.
  • Убедитесь, что вы установили DNS-записи A / AAAA и CNAME для своего полного доменного имени (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 и Лексикон

В качестве первого шага в процессе получения подстановочных сертификатов из 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 --version
# lexicon 3.0.8

Установить acme.shклиент

Acme.shявляется клиентом протокола ACME, написанным исключительно на языке оболочки (оболочки Unix), который автоматизирует процесс получения подписанного сертификата с помощью 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своим именем домена и заменить значения заполнителя API-интерфейса Vultr своими собственными.

После выполнения предыдущих команд ваши сертификаты и ключи находятся в:

  • Для RSA: ~/.acme.sh/example.comкаталог.
  • Для ECC / ECDSA: ~/.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"

Теперь, когда мы успешно получили сертификаты подстановочных знаков от 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. Сертификаты с подстановочными знаками могут быть полезны, если вы хотите защитить несколько поддоменов первого уровня, генерируемых динамически.

Оставить комментарий

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

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

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

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше