Сертификат GlobalSign на WordOps вместо Let’s Encrypt: CSR, ssl.conf и сроки

Сертификат GlobalSign на WordOps вместо Let’s Encrypt: CSR, ssl.conf и сроки

На krivoshein.site под WordOps стоял бесплатный Let’s Encrypt, который WordOps выпускает через acme.sh. В ноябре 2024 года я поменял его на платный GlobalSign, купленный у FirstVDS. Ниже порядок, который сработал: отключить Let’s Encrypt, чтобы он не перезаписал сертификат, сделать CSR, подключить файлы в Nginx и проверить цепочку. В конце про сроки: с 2026 года платные сертификаты тоже живут меньше года.

Зачем платный сертификат, если есть Let’s Encrypt

Для браузера разницы нет: нужен правильный fullchain, ключ и доверенный удостоверяющий центр. Платный сертификат берут, когда этого требует заказчик или внутренние правила, когда нужна проверка организации (OV) или когда удобнее заказывать всё у одного хостера с поддержкой.

У FirstVDS сейчас продаются сертификаты GlobalSign: AlphaSSL на один домен стоит 1 250 ₽ в год, AlphaSSL Wildcard для всех поддоменов 3 926 ₽, GlobalSign Domain SSL 2 855 ₽. Сертификаты выпускает GlobalSign, FirstVDS указывает, что они доступны для России и Беларуси.

1. Отключить Let’s Encrypt для сайта

Иначе acme.sh при очередном продлении снова положит Let’s Encrypt поверх ваших файлов. В WordOps это делается штатно, ключом --letsencrypt=off из документации команды wo site:

sudo wo site info example.com
sudo wo site update example.com --letsencrypt=off

Потом стоит убедиться, что домена нет в списке acme.sh. WordOps держит acme.sh в /etc/letsencrypt, и задача продления в crontab root выглядит так:

sudo crontab -l | grep acme
# 47 6 * * * "/etc/letsencrypt"/acme.sh --cron --home "/etc/letsencrypt" --config-home "/etc/letsencrypt/config" > /dev/null

sudo /etc/letsencrypt/acme.sh --list --home /etc/letsencrypt --config-home /etc/letsencrypt/config

Весь cron целиком не выключайте, если Let’s Encrypt нужен другим сайтам на сервере. Если домен остался в списке, уберите только его через acme.sh --remove -d example.com с теми же --home и --config-home. И учтите, что после отключения SSL сайт ненадолго останется без HTTPS, так что файлы нового сертификата лучше подготовить заранее.

2. Ключ и CSR

Ключ и запрос на сертификат делаются одной командой (openssl req). В Common Name укажите домен, на который заказываете сертификат:

openssl req -new -newkey rsa:2048 -nodes \
  -keyout example_com.key \
  -out example_com.csr

В заказ у FirstVDS уходит только CSR. Ключ остаётся на сервере и никуда не отправляется. После проверки домена приходят файлы: сертификат сайта и цепочка промежуточных сертификатов (ca-bundle). Названия у разных продавцов отличаются.

3. Файлы на сервер и ssl.conf

sudo mkdir -p /etc/ssl/example.com
sudo mv fullchain.crt example_com.key ca-bundle.crt /etc/ssl/example.com/
sudo chmod 600 /etc/ssl/example.com/*.key
sudo chmod 644 /etc/ssl/example.com/*.crt

fullchain.crt собирается так: сначала сертификат сайта, за ним промежуточные, в порядке, который указывает удостоверяющий центр. Свои настройки Nginx для сайта WordOps держит в /var/www/example.com/conf/nginx/. Там создаём ssl.conf:

listen 443 ssl;
ssl_certificate     /etc/ssl/example.com/fullchain.crt;
ssl_certificate_key /etc/ssl/example.com/example_com.key;
ssl_trusted_certificate /etc/ssl/example.com/ca-bundle.crt;

ssl_trusted_certificate нужен для OCSP stapling. Если fullchain уже содержит промежуточные сертификаты, сайту хватает первых двух строк. Проверяем конфиг и перечитываем его без перезапуска:

sudo nginx -t && sudo systemctl reload nginx

4. Проверка

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
  | openssl x509 -noout -issuer -subject -dates

В issuer должен быть GlobalSign, а даты совпадать с заказом. Снаружи цепочку проверяет SSL Labs: там не должно быть предупреждений про неполную цепочку (missing intermediate).

5. Срок действия: с 2026 года меньше года

Раньше платный сертификат жил до 398 дней. В 2025 году участники CA/Browser Forum, в том числе GlobalSign, Apple, Google, Microsoft и Mozilla, приняли ballot SC081v3: максимальный срок сокращается по шагам с марта 2026 по март 2029 года. С 15 марта 2026 года это 200 дней, с марта 2027 года 100 дней, с марта 2029 года 47 дней. Поэтому продавцы и пишут про ежегодный перевыпуск: сертификат на год оплачивается один раз, но выпускать и менять его на сервере придётся чаще.

Автоматического продления, как у Let’s Encrypt, у ручного сертификата нет. Нужно напоминание недели за две до даты Not After, перевыпуск у продавца и замена crt на сервере. Ключ можно оставить старым, если CSR не пересоздавали.

В итоге GlobalSign на WordOps ставится за полчаса: --letsencrypt=off, проверка acme.sh, CSR, свой ssl.conf, nginx -t и reload, потом openssl и SSL Labs. Главное помнить про сроки: с 2026 года платный сертификат придётся менять минимум два раза в год, и без напоминаний это легко пропустить.

Источники и ссылки


Комментарии загружаются…