У меня есть веб-сервер nginx с сертификатом SSL, предоставленным Let's Encrypt с использованием Certbot. Например, этот сайт общедоступен по адресу https://example.com
Новый сервер
Я создаю новый сервер, который заменит существующий сервер, как только все будет правильно настроено и развернуто.
Я хочу, чтобы это было доступно на https://beta.example.com при настройке, а затем в https://example.com после получения одобрений.
https://beta.example.com может быть доступен сейчас, поскольку ни один другой сервер не обслуживает сайт в этом поддомене, но example.com будет работать только тогда, когда я в конечном итоге обновлю записи DNS.
Очевидно, что мне нужно, чтобы существующий веб-сервер продолжал работать без каких-либо последствий, пока не будет готов новый сервер.
Как я могу создать сертификат SSL для нового сервера, чтобы в конечном итоге он вступил во владение?
Проблема с проверкой домена
Когда я запускаю certbot, он пытается получить доступ https://example.com в рамках проверки, однако, это не удается, потому что этот домен указывает на IP-адрес существующего сервера.
Ошибка авторизации. example.com (tls-sni-01): urn: acme: error: tls :: На сервере возникла ошибка TLS во время проверки домена :: удаленная ошибка: tls: сбой рукопожатия
ВАЖНЫЕ ЗАМЕТКИ:
- Сервер сообщил о следующих ошибках:Домен: example.com
Тип: tls
Подробности: удаленная ошибка: tls: сбой рукопожатияЧтобы исправить эти ошибки, убедитесь, что ваше доменное имя было введено правильно и что записи DNS A / AAAA для этого домена содержат правильный IP-адрес. Кроме того, убедитесь, что у вас установлена последняя конфигурация TLS, которая позволяет серверу взаимодействовать с клиентом Certbot.
Есть ли подходящий процесс для решения этой проблемы с учетом того, что я пытаюсь сделать?
Попробуйте использовать обратный прокси. Создайте два виртуальных хоста на своем старом сервере, которому принадлежит example.com, и направьте туда beta.example.com. Виртуальный хост с beta.examply.com должен отделять HTTPS и запросы обратного прокси к реальному серверу через HTTP. Оба виртуальных хоста будут использовать один и тот же сертификат. Вся работа с Letsencrypt пока будет на старом сервере.
Когда вы будете готовы, вы копируете сертификат на новый сервер, обновляете DNS и ждете, пока он установится (по крайней мере, в течение DNS TTL секунд). Когда вы видите, что все запросы достигают нового сервера, вы можете либо отменить ситуацию, либо просто переместить данные Letsencrypt и полностью перейти на новый.
Вы не можете использовать beta.example.com
для проверки сертификата Letsencrypt для домена example.com
.
Вы можете скопировать файлы текущего сертификата с запущенного сервера. example.com
и поместите их на запущенный сервер beta.example.com
. Если вы работаете в системе на базе Linux, эти файлы могут быть расположены по адресу /etc/pki/tls/certs/
папка.
В дополнение к другим ответам, которые рекомендуют скопировать сертификат на новый сервер, вы также должны скопировать конфигурацию certbot. Это гарантирует, что ваш процесс продления будет работать должным образом.
Для меня эти файлы находятся в /etc/letsencrypt
. Убедитесь, что вы сохранили права доступа к файлам и символические ссылки во время копирования (rsync -a
).
Также не забудьте настроить cronjobs или все, что вы используете для обновления сертификатов. После переключения на новый сервер вы можете протестировать процесс обновления, используя certbot renew --dry-run
.