Aleksei_Segodin
@Aleksei_Segodin
арт директор / дизайнер

Как сделать SSL сертификат для сервера, который пока-что не использует домен?

Привет!

Ситуация:
Есть продакшен-сервер с работающим сайтом. И есть новый сервер на котором создана новая версия сайта и он будет исользоваться для продакшена.
На новом сервере нет домена, потому что он будет использовать тот же домен который используется на продакшен-сервере.
Оба сервера используют nginx и Ubuntu.

Задача:
Нужно подключить на новом сервере SSL сертификат с помощью Certbot (Let's Encrypt) чтобы он автоматически обновлялся каждые 3 месяца.

Проблема:
Для подключения сертификата через Certbot нужно, чтобы домен сайта вёл на IP сервера на который в данный момент настраивается сертификат. Но в данный момент домент переадресвывает на старый сервер. А менять IP в А-записях (в DNS) доменов не вариант, потому что потом нужно будет ждать пол-дня–день, чтобы DNS обновились и только после этого настраивать сертификат. Получается, что сайт (для некоторых пользователей) может быть недоступным или работать без https в течение суток.

Вопрос:
Как решить эту проблему и «бесшовно» перенаправить домен на новый сервер с активированным сертификатом?
Может быть для этого использовать какой-то временный домен?
А может быть можно просто перенести файлы сертификата с одного сервера ну другой? Но тогда какие именно файлы (внутри /etc/letsencrypt их много в разных папках)? И в результате такого копирования будет ли работать автообновление каждые 3 месяца?


Заранее спасибо за помощь!
  • Вопрос задан
  • 260 просмотров
Решения вопроса 2
dyuriev
@dyuriev
A posteriori
скопируйте сертификат (файлы которые в соответствующих директивах конфига nginx прописаны) с рабочего сервера перед переносом и пропишите в директивы nginx на новом сервере

уже после переноса и смены А-записей поставьте нормально certbot с автообновлением сертификата

не городите велосипед и грабли

Это будет самый быстрый способ для разового переноса одного сервера.

UPD: чтобы не было конфликтов, размещайте файлы с рабочего сервера с ключем и сертификатом на новый не в /etc/letsencrypt, а, например, в /etc/nginx/ssl, а то потом certbot офигеет, че ему подсунули
Ответ написан
@dronmaxman
VoIP Administrator
> Может быть для этого использовать какой-то временный домен?
Можно. Добавь new.example.com и сделай 302 с example.com.

> А может быть можно просто перенести файлы сертификата с одного сервера ну другой?
Можно и достаточно легко, но доменное имя должно совпадать.

> Но тогда какие именно файлы (внутри /etc/letsencrypt их много в разных папках)
Посмотри в apache какие именно файлы у него настроены в директиве SSL.
egrep -Ri "SSLCertificateKeyFile|SSLCertificateFile" /etc/apache2/

> И в результате такого копирования будет ли работать автообновление каждые 3 месяца?
Будет, если обновить DNS на новый сервер, установить certbot.

Можно использовать CNAME, т.к. он быстро обновляется.
https://vps.ua/wiki/cname-record/

Вообще варианты есть
1. Перенести сертификат, обновить DNS, настроить проксирование на новый сайт. В результате, часть клиентов будут ходить по новом DNS, часть через прокси пока не обновиться DNS.
2. Создать отдельное DNS имя (можно просто префикс к текущему имени добавить), настроить 302 на него. После обновления DNS сделать все в обратном порядке.
3. Скопировать сертификат, использовать тот же домен, но вместо A записи использовать CNAME.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
копируешь сертификаты с продакшена ставишь их и местный certbot их пропустит поскольку они валидные и не будет их перевыпускать.
А вот когда сайт переедет он их перевыпустит.
СОбственно все будет бесшовно.
Ответ написан
Комментировать
@zkrvndm
Софт для автоматизации
Я бы использовал Cloudflare. Подключите ваш домен к нему, при необходимости IP-адрес сервера меняется в один клик, мгновенно - без необходимости ждать сутки. SSL сертификат они ставят свой и следят за актуальностью, вам ничего делать не нужно, certbot не понадобится. У них есть бесплатный базовый тариф, используйте его.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы