До основного вмісту

Перенесення 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 електронною поштою або незашифрованими каналами. Зберігайте його тільки на сервері з правами 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 проти платного 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-запис домену.

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці