К основному содержимому

Перенос SSL-сертификата на новый сервер или перевыпуск

Миграция · 19.04.2026 · 4 мин чтения
Иллюстрация к статье «Перенос SSL-сертификата на новый сервер или перевыпуск»

При миграции на новый сервер SSL-сертификат нужно либо перенести (если вы его купили), либо выпустить заново (если использовали Let's Encrypt). В большинстве случаев проще и быстрее выпустить новый бесплатный Let's Encrypt — это занимает 2–5 минут.

Когда переносить, а когда перевыпускать

СитуацияРекомендация
Let's Encrypt (бесплатный)Выпустить заново на новом сервере
Платный SSL (Sectigo, Comodo, DigiCert)Перенести или переоформить бесплатно
EV SSL (зелёная строка)Переоформить — требует верификацию компании
Wildcard SSLПеренести (файл .crt + .key) или переоформить

Вариант 1: Let's Encrypt на новом сервере (рекомендуется)

# Установить Certbot
apt install certbot python3-certbot-nginx -y

# Выпустить сертификат для домена
# (DNS должен уже указывать на новый сервер!)
certbot --nginx -d example.com -d www.example.com

# Или в standalone-режиме (до настройки Nginx)
certbot certonly --standalone -d example.com -d www.example.com

# Автообновление — certbot устанавливает таймер автоматически
systemctl status certbot.timer

Вариант 2: Перенос платного SSL-сертификата

Экспорт из cPanel

># cPanel → SSL/TLS → Manage SSL Sites
# Скопировать три файла:
# - Certificate (CRT)
# - Private Key (KEY)
# - CA Bundle (Chain)

Установка на Nginx

># Сохранить файлы на новом сервере
# /etc/ssl/example.com.crt  ← Certificate + CA Bundle (объединить!)
# /etc/ssl/example.com.key  ← Private Key

cat example.com.crt ca-bundle.crt > /etc/ssl/example.com-fullchain.crt

# Конфиг Nginx
server {
    listen 443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate /etc/ssl/example.com-fullchain.crt;
    ssl_certificate_key /etc/ssl/example.com.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers off;
}

nginx -t && systemctl reload nginx

Установка на Apache

># /etc/apache2/sites-available/example.com-ssl.conf
<VirtualHost *:443>
    ServerName example.com
    SSLEngine on
    SSLCertificateFile /etc/ssl/example.com.crt
    SSLCertificateKeyFile /etc/ssl/example.com.key
    SSLCertificateChainFile /etc/ssl/ca-bundle.crt
</VirtualHost>

a2enmod ssl
a2ensite example.com-ssl
systemctl reload apache2

Проверка SSL после переноса

># Проверить срок и цепочку доверия
openssl s_client -connect example.com:443 -servername example.com < /dev/null

# Проверить онлайн
# https://www.ssllabs.com/ssltest/analyze.html?d=example.com
Тест до смены DNS: Проверить работу SSL на новом сервере до переключения DNS можно через SNI:
>curl -vI --resolve example.com:443:NEW-SERVER-IP https://example.com/ 2>&1 | grep -E "SSL|certificate"
Приватный ключ конфиденциален! Никогда не передавайте .key файл по email или незашифрованным каналам. Храните его только на сервере с правами 600 (chmod 600 example.com.key).

Частые ошибки при переносе SSL

СообщениеЧто означает
SSL_ERROR_BAD_CERT_DOMAIN в браузереСертификат выпущен на другое имя (например, без www), а домен запрашивается с ним
unable to get local issuer certificate в opensslВ файл не подключена промежуточная CA Bundle — установлен только сам сертификат без цепочки
NET::ERR_CERT_DATE_INVALID сразу после установкиНа новом сервере неверно системное время, TLS-рукопожатие проверяет срок действия по локальным часам
Certbot: Timeout during connectDNS ещё не переключён на новый сервер, HTTP-01 challenge не может пройти проверку

Let's Encrypt vs платный SSL при миграции

КритерийLet's EncryptПлатный SSL
Срок действия90 дней, автопродлениеОбычно 1 год, продление вручную
Действие при миграцииБесплатный перевыпуск за минутыНужно переносить файлы или переоформлять
Поддержка WildcardДа, через DNS-01Зависит от типа сертификата
Проверка организации (OV/EV)НедоступнаДоступна у отдельных удостоверяющих центров

Когда простой перевыпуск не подходит

  • Сертификат EV или OV с подтверждённой организацией — придётся заново проходить верификацию компании, это не мгновенно
  • Клиент требует сертификат конкретного удостоверяющего центра по внутренней политике безопасности
  • DNS ещё не переключён на новый сервер, а простой недопустим — сначала используйте тестовую проверку через SNI, описанную выше, и лишь потом меняйте DNS
  • В мобильном приложении используется закреплённый (pinned) сертификат — смена сертификата без обновления приложения сломает соединение

Если перенос SSL — лишь часть более крупной миграции всего проекта на новый сервер, начните с общего плана в статье как перейти на ZevsHost, а после переноса используйте чек-лист проверки после миграции, чтобы не упустить смежные настройки, кроме самого сертификата.

Что делать с HSTS при смене сертификата

Если на старом сервере был включён заголовок Strict-Transport-Security (HSTS), браузеры части посетителей будут помнить это правило неделями или месяцами и откажутся открывать сайт по HTTP даже на новом сервере, пока не установится валидный HTTPS. Это значит, что окно между переключением DNS и полной готовностью SSL на новом сервере должно быть нулевым: сертификат обязан быть выпущен и проверен заранее через тест по SNI, описанный выше, ещё до того, как вы поменяете A-запись домена.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке