На 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
--letsencrypt, wildcard и --letsencrypt=off, который отключает сертификат Let’s Encrypt для сайта. Источник: docs.wordops.net, wo site.Потом стоит убедиться, что домена нет в списке 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 года платный сертификат придётся менять минимум два раза в год, и без напоминаний это легко пропустить.
Источники и ссылки
--letsencrypt, --letsencrypt=wildcard и --letsencrypt=off.
CA/Browser Forum: Ballot SC081v3
Срок TLS-сертификатов сокращается с 398 до 47 дней с марта 2026 по март 2029 года.
OpenSSL: openssl req
Создание ключа и CSR.
SSL Labs: SSL Server Test
Проверка цепочки и настроек TLS снаружи.