На krivoshein.site (стек WordOps) стоял Let’s Encrypt через acme.sh. Нужно было перейти на коммерческий GlobalSign, выписанный через FirstVDS: CSR, установка цепочки в Nginx, отключение автообновления LE, чтобы acme не перезаписал ssl. Ниже рабочий порядок без лишней теории.
Зачем GlobalSign, если есть LE
Let’s Encrypt закрывает HTTPS для большинства сайтов. Платный OV/EV или просто «именной» GlobalSign берут, когда нужен бренд в цепочке, требования заказчика, страховка/комплаенс или единый процесс заказа у хостера. Технически для браузера важен корректный fullchain + ключ + доверенный CA, а не «дорого/дёшево».
1. Отключить автопродление Let’s Encrypt
Иначе acme.sh по крону может снова положить LE поверх вашего файла. Смотрим crontab:
crontab -l sudo crontab -l
Типичная строка WordOps/acme:
47 6 * * * "/etc/letsencrypt"/acme.sh --cron --home "/etc/letsencrypt" --config-home "/etc/letsencrypt/config" > /dev/null
Закомментируйте или удалите задачу для этого домена / acme cron, если больше не пользуетесь LE на сервере. Если LE нужен другим сайтам, отключайте точечно (конфиг acme для конкретного домена), а не весь cron вслепую.
2. Снять старый SSL через WordOps
sudo wo site info krivoshein.site
Если видите SSL от Let’s Encrypt и собираетесь ставить файлы вручную:
sudo wo site update krivoshein.site --ssl=off
В исходном кейсе использовалась команда вида wo site ssl --force -d ... (в зависимости от версии WordOps синтаксис чуть отличается, смотрите wo site update --help / man вашей сборки). Цель одна: убрать LE-пути из nginx-конфига сайта, чтобы дальше подключить свои crt/key.
Окно без HTTPS: после снятия SSL сайт может уйти на :80 до reload с новым conf. Делайте в спокойное время или держите уже готовые файлы сертификата.
3. CSR и заказ GlobalSign (FirstVDS)
Генерация ключа и CSR (пример для www/домена; CN/SAN согласуйте с тем, что заказываете):
openssl req -new -newkey rsa:2048 -nodes \ -keyout www_krivoshein_site.key \ -out www_krivoshein_site.csr
В интерактиве openssl укажите реальные Country/Organization и Common Name (домен). CSR отправляете в заявку FirstVDS/GlobalSign. После валидации приходят файлы: сертификат домена, цепочка/CA bundle (имена у провайдера могут отличаться: fullchain.crt, *.cer, ca-bundle).
Ключ .key никуда не отправляйте, только CSR. Храните key с правами root-only.
4. Файлы на сервере и ssl.conf WordOps
sudo mkdir -p /etc/ssl/krivoshein.site sudo mv fullchain.crt www_krivoshein_site.key ca-bundle.crt /etc/ssl/krivoshein.site/ sudo chmod 600 /etc/ssl/krivoshein.site/*.key sudo chmod 644 /etc/ssl/krivoshein.site/*.crt
Кастомные сниппеты WordOps для сайта: /var/www/ДОМЕН/conf/nginx/. Создайте или поправьте ssl.conf:
listen 443 ssl; ssl_certificate /etc/ssl/krivoshein.site/fullchain.crt; ssl_certificate_key /etc/ssl/krivoshein.site/www_krivoshein_site.key; ssl_trusted_certificate /etc/ssl/krivoshein.site/ca-bundle.crt;
Если fullchain уже включает промежуточные, иногда достаточно certificate + key; ssl_trusted_certificate используют для OCSP stapling / доверия к цепочке. Соберите fullchain в порядке: leaf + intermediate(s), как требует CA.
Проверка и применение:
sudo nginx -t sudo systemctl reload nginx
Предпочтительнее reload, чем жёсткий restart, если конфиг уже валиден.
5. Проверка
echo | openssl s_client -connect krivoshein.site:443 -servername krivoshein.site 2>/dev/null | openssl x509 -noout -issuer -subject -dates
Внешний аудит: SSL Labs SSL Test. Цепочка Complete, issuer GlobalSign, без missing intermediate.
6. Срок действия
GlobalSign обычно на 1 год (иногда дольше по тарифу). Автопродления как у LE нет: календарь, тикет у FirstVDS, повторный выпуск и замена crt (ключ можно оставить, если CSR/key не пересоздавали). Имеет смысл напоминание за 30/14 дней до Not After.
Кратко
- отключите acme/LE cron, чтобы не перетёрло коммерческий SSL;
- снимите LE-привязку WordOps, положите crt/key в
/etc/ssl/...; - пропишите пути в
conf/nginx/ssl.conf,nginx -t, reload; - проверьте openssl/SSL Labs; следите за датой окончания.