Featured image of post Замена центра сертификации в acme.sh: переход с Let's Encrypt на ZeroSSL

Замена центра сертификации в acme.sh: переход с Let's Encrypt на ZeroSSL

acme.sh – это легковесный клиент протокола ACME, предназначенный для получения SSL/TLS сертификатов от таких центров сертификации (CA), как Let's Encrypt и ZeroSSL.

acme.sh — это компактный и мощный инструмент для управления SSL/TLS сертификатами. Он поддерживает несколько центров сертификации (CA), но при попытке поменять CA, отсутствие нужной команды может довести до безумия. Не переживайте, это руководство проведет вас через процесс смены шаг за шагом и добавит немного шуток, чтобы поднять настроение!


Шаг 1: Просмотр поддерживаемых CA

Вы можете ознакомиться с официальной страницей Wiki, где перечислены все поддерживаемые CA.

На данный момент доступны следующие центры сертификации:

Краткое название URL ACME сервера Назначение
letsencrypt https://acme-v02.api.letsencrypt.org/directory Основной Let’s Encrypt
letsencrypt_test https://acme-staging-v02.api.letsencrypt.org/directory Тестовая среда
buypass https://api.buypass.com/acme/directory CA BuyPass.com
buypass_test https://api.test4.buypass.no/acme/directory Тест CA BuyPass.com
zerossl https://acme.zerossl.com/v2/DV90 CA ZeroSSL
sslcom https://acme.ssl.com/sslcom-dv-rsa или sslcom-dv-ecc CA SSL.com
google https://dv.acme-v02.api.pki.goog/directory Google Public CA
googletest https://dv.acme-v02.test-api.pki.goog/directory Тест CA Google

Существует множество поддерживаемых CA, но большое количество опций может только запутать – какой из них выбрать? Не переживайте, для обычных случаев будет достаточно использовать letsencrypt или zerossl.


Шаг 2: Смена CA

После выбора желаемого CA используйте следующую команду для переключения:

1
acme.sh --set-default-ca --server <Short_Name>

Пример:

  • Если хотите использовать Let’s Encrypt (классический выбор):
    1
    
    acme.sh --set-default-ca --server letsencrypt
    
  • Если хотите попробовать ZeroSSL (выбор для экспериментаторов):
    1
    
    acme.sh --set-default-ca --server zerossl
    

Время для комментариев:

  1. Почему не сделать интерактивный интерфейс, например “Выберите ваш CA”, это выглядело бы более наглядно.
  2. ZeroSSL требует регистрацию API ключа, и это обязательное требование вызывает сомнения насчет того, действительно ли бесплатные услуги такой безобидный ловкач.

Шаг 3: Подтверждение успешного переключения

После выполнения команды лучше проверить, установлен ли правильный CA:

1
acme.sh --show-config

Если вы увидите что-то вроде этого:

1
DEFAULT_CA = letsencrypt

или:

1
DEFAULT_CA = zerossl

то значит, переключение прошло успешно!

Эта команда просто досконально говорит вам, какой “по умолчанию CA”, и не добавляет никакой дополнительной информации, такой как “Переключение успешно, добро пожаловать в новый CA!”.


Шаг 4: Переиздание сертификата

Чтобы убедиться, что новый CA работает должным образом, вам нужно переиздать сертификат:

1
acme.sh --renew -d yourdomain.com --force

Время для комментариев:

  1. Каждый раз, когда вы переиздаете, нужно добавлять --force, в противном случае система просто “притворится, что не слышит”, тратя ваше время.
  2. Ограничения по квоте и проблемы с API часто вызывают недовольство; например, у Let’s Encrypt имеется недельное ограничение на выдачу 50 сертификатов, что как бы напоминает вам “не тратьте бесплатные ресурсы напрасно”.

Специальный случай: разные домены с разными CA

Если вам нужно использовать определенный CA для некоторых доменов, вы можете указать это непосредственно при выдаче:

1
acme.sh --issue -d yourdomain.com --server letsencrypt

Для пользователей с множеством доменов ручная настройка разных CA — это истинное “исскуство труда”. Будем надеяться, что в будущем появится функция пакетного управления.


Важные моменты (обязательно к прочтению, чтобы избежать проблем)

  1. API ключ ZeroSSL
    Если вы выбираете ZeroSSL, вам необходимо заранее зарегистрироваться и получить API ключ:

    1
    
    acme.sh --register-account --server zerossl --accountemail your-email@example.com
    

    Бесплатные сертификаты превращаются в нечто вроде SaaS сервиса, это “усовершенствование” действительно лучше?

  2. Проблемы с совместимостью
    Если ваш сервер очень старый (например, некоторые системы даже не обновляют корневые сертификаты), он может не поддерживать новые корневые сертификаты CA, такие как ZeroSSL. Если вы столкнулись с ошибками SSL, вероятнее всего, это именно связано с этой проблемой.

  3. Перезапуск службы
    Не забудьте перезагрузить конфигурацию веб-службы, чтобы применить новый сертификат:

    1
    2
    3
    4
    5
    
    # Перезапуск Nginx
    systemctl reload nginx
    
    # Перезапуск Apache
    systemctl reload apache2
    

Итог

Хотя процесс смены CA кажется простым, всегда есть небольшие pitfalls, которые могут вызвать недовольство. Однако, освоив вышеперечисленные шаги, вы сможете быстро завершить переключение и не будьте под контролем различных сообщений об ошибках.
В заключение, напомню: не забудьте протестировать новый сертификат на совместимость, не ждите, пока он выведет вас на “удивление” во время развертывания.

Создано при помощи Hugo
Тема Stack, дизайн Jimmy