На krivoshein.site стоит не бесплатный Let’s Encrypt, а платный сертификат GlobalSign (AlphaSSL). Решение старое: нормальная цепочка, предсказуемый срок действия и меньше сюрпризов на старых устройствах. Сертификат подходил к концу, поэтому его продлили и заодно записали весь процесс — от панели FirstVDS до конфига Nginx на WordOps.
Ниже — практичный разбор без маркетинга: что нажимать в панели, какие файлы приходят от GlobalSign и как их разложить по серверу.
Где и как продлевать сертификат
Сертификат для krivoshein.site оформлен через панель FirstVDS. В разделе SSL-сертификатов интерфейс прямолинейный: выбираешь домен, продлеваешь заказ, дальше стандартная история с CSR и подтверждением домена.
CSR уже был, приватный ключ лежит на сервере, новый ключ не понадобился. В панели FirstVDS заполняются данные владельца (ФИО, e-mail, телефон) и выбирается подтверждение домена через DNS TXT-запись. Для GlobalSign это классический вариант.
Подтверждение домена через DNS TXT
После оформления заказа панель FirstVDS выдаёт строку вида:
_globalsign-domain-verification=XXXXXXXXXXXX...
Эту запись нужно добавить в DNS для домена krivoshein.site. DNS живёт у регистратора, так что всё сводится к добавлению TXT-записи в зону. Через некоторое время GlobalSign проверяет запись, домен подтверждается, и сертификат уходит на выпуск.
После выпуска в панели FirstVDS становятся доступны файлы сертификата. Скачивается набор архивов и отдельный CSR, но нужен именно zip с готовыми сертификатами.
Что прислал GlobalSign: разбор файлов
Из архива FirstVDS/GlobalSign получается набор примерно такого вида:
www_krivoshein_site.crt— основной сертификат для www.krivoshein.site (в SAN обычно и сам krivoshein.site);GlobalSign GCC R6 AlphaSSL CA 2025.crt— промежуточный сертификат CA;GlobalSign.crt— корневой сертификат GlobalSign;www_krivoshein_site.p7b— PKCS#7-пакет с тем же содержимым, больше полезен для IIS/Windows.
Отдельно есть приватный ключ, который ранее генерировали на сервере. Он выглядит как стандартный блок:
-----BEGIN RSA PRIVATE KEY----- ...закрытый ключ... -----END RSA PRIVATE KEY-----
Показывать его где-либо кроме сервера — плохая идея, поэтому в блоге только заглушка.
Директория под сертификат на сервере
Сервер с krivoshein.site крутится на WordOps поверх Nginx. Чтобы не размазывать ключи и сертификаты по системе, удобна отдельная директория для домена:
mkdir -p /etc/ssl/krivoshein.site cd /etc/ssl/krivoshein.site
Сюда же кладётся приватный ключ:
nano /etc/ssl/krivoshein.site/www_krivoshein_site.key
Вставляется блок с приватным ключом, сохраняется. Права — минимально необходимые:
chmod 600 /etc/ssl/krivoshein.site/www_krivoshein_site.key chown root:root /etc/ssl/krivoshein.site/www_krivoshein_site.key
Дальше на сервер копируется zip с сертификатами из панели FirstVDS и распаковывается:
cd /etc/ssl/krivoshein.site unzip /root/14836355.zip
В каталоге оказываются GlobalSign GCC R6 AlphaSSL CA 2025.crt, GlobalSign.crt, www_krivoshein_site.crt и p7b.
Собираем fullchain и ca-bundle
Для Nginx обычно нужны два файла:
- fullchain — основной сертификат плюс цепочка до корневого;
- ca-bundle (для
ssl_trusted_certificate) — цепочка CA для stapling и проверки.
Fullchain
Fullchain собирается так:
cd /etc/ssl/krivoshein.site
cat www_krivoshein_site.crt \
GlobalSign\ GCC\ R6\ AlphaSSL\ CA\ 2025.crt \
> fullchain.crt
chmod 644 fullchain.crt
chown root:root fullchain.crt
Этого достаточно для большинства клиентов: они получают сертификат сайта и промежуточный, дальше опираются на доверенные корневые из своей системы.
CA bundle
Для ssl_trusted_certificate — отдельный файл с промежуточным и корневым:
cat GlobalSign\ GCC\ R6\ AlphaSSL\ CA\ 2025.crt \
GlobalSign.crt \
> ca-bundle.crt
chmod 644 ca-bundle.crt
chown root:root ca-bundle.crt
Этот файл nginx использует, в частности, для OCSP stapling.
Проверка: ключ подходит к сертификату
Перед правкой конфига стоит проверить, что приватный ключ действительно от этого сертификата, а не от прошлого набора. Сравниваются модули:
cd /etc/ssl/krivoshein.site openssl x509 -noout -modulus -in www_krivoshein_site.crt | openssl md5 openssl rsa -noout -modulus -in www_krivoshein_site.key | openssl md5
Если хэши совпали — пара ключ/сертификат корректная. Если нет — где-то перепутан ключ, лучше остановиться до reload nginx.
Настройка Nginx/WordOps
В WordOps SSL-конфиг для сайта лежит в /var/www/krivoshein.site/conf/nginx/ssl.conf. В нём указываются пути к собранным файлам:
listen 443 ssl; 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; ssl_stapling on; ssl_stapling_verify on;
HTTP/2 и HTTP/3 (QUIC) могут быть включены отдельно — они используют те же пути к сертификатам.
Редирект с http на https — отдельный блок на 80 порту:
server {
listen 80;
listen [::]:80;
server_name krivoshein.site www.krivoshein.site;
return 301 https://$host$request_uri;
}
Проверка конфига и reload nginx
После правки конфигов первым делом — синтаксис:
nginx -t
Если syntax is ok и test is successful — reload:
systemctl reload nginx
На этом этапе сайт уже должен отдавать новый сертификат. Дополнительно проверяются даты и цепочка через openssl с клиентской стороны:
openssl s_client -connect krivoshein.site:443 -servername krivoshein.site \
</dev/null 2>/dev/null | openssl x509 -noout -dates -issuer -subject
В результате — срок действия до января 2027 и issuer GlobalSign GCC R6 AlphaSSL CA 2025. Продление прошло успешно, наружу уходит именно новый сертификат.
Краткий чеклист продления SSL через FirstVDS
Чтобы в следующий раз не вспоминать по шагам:
- В панели FirstVDS продлить заказ SSL для krivoshein.site.
- Выбрать подтверждение через DNS TXT, добавить запись
_globalsign-domain-verificationв зону домена, дождаться выпуска. - Скачать архив с сертификатами из панели FirstVDS.
- На сервере в
/etc/ssl/krivoshein.site:- убедиться, что лежит приватный ключ
www_krivoshein_site.keyс правами 600; - распаковать архив:
www_krivoshein_site.crt,GlobalSign GCC R6 AlphaSSL CA 2025.crt,GlobalSign.crt; - собрать
fullchain.crt(сертификат + промежуточный CA); - собрать
ca-bundle.crt(промежуточный + корневой CA); - проверить совпадение модулей ключа и сертификата через openssl.
- убедиться, что лежит приватный ключ
- В
ssl.confnginx/WordOps прописать пути к fullchain, ключу и ca-bundle. - Сделать
nginx -tи reload, проверить сертификат черезopenssl s_client.
Итог
Продление платного SSL через FirstVDS в связке с Nginx и WordOps — прямолинейная задача. Главное: аккуратно обращаться с приватным ключом и правильно собрать цепочку. Проверка через openssl перед reload nginx делает процедуру надёжной и повторяемой — как раз то, что нужно для боевого сайта.