Перейти к содержанию

Разбор команд для установки и настройки acme.sh

1. Установка необходимых пакетов

Bash
apt install ssh syslog-ng cron socat logrotate
Устанавливаемые пакеты:

  • ssh — сервер OpenSSH (для удаленного доступа по SSH).
  • syslog-ng — система логирования.
  • cron — планировщик задач.
  • logrotate — утилита для управления лог-файлами (ротация логов).
  • socat — инструмент для перенаправления трафика (полезен при работе с сетевыми сервисами).

3. Установка acme.sh для автоматического управления SSL-сертификатами

Клонирование репозитория acme.sh с GitHub.

Bash
git clone https://github.com/acmesh-official/acme.sh.git && cd ./acme.sh

4. Установка acme.sh с заданными путями

Bash
./acme.sh --install --home /var/lib/acme.sh --config-home /etc/acme.sh --cert-home /etc/ssl/acmesh --accountemail support@mail.ru

Пояснение к команде:

  • --home /var/lib/acme.sh — задает каталог установки.
  • --config-home /etc/acme.sh — каталог конфигурации.
  • --cert-home /etc/ssl/acmesh — каталог хранения сертификатов.
  • --accountemail support@mail.ru — указывает email для учетной записи.

5. Добавление переменных окружения в .bashrc

Добавим переменные окружения acme.sh в .bashrc, чтобы они загружались при каждом запуске оболочки:

Bash
cat /var/lib/acme.sh/acme.sh.env >> ~/.bashrc
exec bash

6. Регистрация аккаунта в Let's Encrypt

Bash
acme.sh --register-account -m support@mail.ru

7. Установка Let’s Encrypt в качестве CA (Certification Authority)

Bash
acme.sh --set-default-ca  --server letsencrypt

8. Настройка уведомлений в Telegram

Bash
TELEGRAM_BOT_APITOKEN=11111111111:aaaaaaaaaaaaaaaaaaaaaaaaaa TELEGRAM_BOT_CHATID="-101111111" acme.sh --set-notify --notify-hook telegram --notify-level 1

Пояснение к команде:

  • TELEGRAM_BOT_APITOKEN — API-ключ Telegram-бота.
  • TELEGRAM_BOT_CHATID — ID чата, куда будут отправляться уведомления.

9. Добавление задания в cron для автоматического обновления сертификатов

Bash
acme.sh --install-cronjob

9.1 Генерация сертификата

Bash
REGRU_API_Username='support@mail.com' REGRU_API_Password='апи_пароль' acme.sh --issue --dns dns_regru -d domain.ru

После этой команды логин и пароль от api больше придется указывать при гшенерации , они уже будут зафиксированы в /etc/acme.sh/account.conf

10. Установка SSL-сертификата для upload.calculate.ru

Bash
acme.sh --install-cert -d domain.ru --key-file /etc/nginx/ssl/privkey.pem --fullchain-file /etc/nginx/ssl/fullchain.pem
Пояснение

  • -d domain.ru — указывает домен.
  • --key-file /etc/nginx/ssl/privkey.pem — конечный путь для закрытого ключа.
  • --fullchain-file /etc/nginx/ssl/fullchain.pem — конечный путь для полного цепочного сертификата.

10.1 А вот такой командой можно задеплоить сертификат на удаленный сервер

Bash
DEPLOY_SSH_USER="root" DEPLOY_SSH_SERVER="10.0.0.1" DEPLOY_SSH_KEYFILE="/etc/nginx/ssl/privkey.pem" DEPLOY_SSH_FULLCHAIN="/etc/nginx/ssl/fullchain.pem" DEPLOY_SSH_REMOTE_CMD="/etc/init.d/nginx restart" acme.sh --deploy -d *.domain.ru --deploy-hook ssh