Перенос сайта с VPS на VPS — проблемы с SSL сертификатом
- Мутев Сергей · 24.04.2018
У меня для нескольких сайтов есть один VPS сервер. Он расположен у Российского VPS провайдера ihor.ru, так как основной сайт был сделан именно под пользователей из России. Но проект стал сильно зависеть, от договоров с компаниями и мне его пришлось продать на бирже сайтов, человеку живущему рядом с заказчиками.
Еще у меня на этом VPS, есть сайт ddslook.com который ранее был личным блогом, но теперь он стал новостным сайтом по теме: электроника. Нацелен сайт на целевую аудиторию из США, поэтому было принято решение купить VPS у Digital Ocean для уменьшения отклика до сайта. Кстати если перейти по этой ссылке, то на баланс Digital Ocean дадут 10 долларов, а это два месяца использования стартового VPS сервера.
I - переноса сайт
Останавливаем (если это возможно) создание контента. В моем случае его генерирует бот, и мне всего нужно было нажать паузу. Потом нужно определиться с типом переноса, поскольку сайт на WordPress, можно перенести с помощью плагинов. Но в моем случае сайт больше 1 Гб и бесплатно это не проделать. Следовательно пришлось тащить по FTP следующие папки, предварительно сделав архив: plugins.tar.gz, themes.tar.gz, uploads.tar.gz и сделать экспорт базы данных через phpmyadmin.
II - подготовка нового VPS
На Digital Ocean можно запускать VPS сразу с предустановленными программами. Там это капли, что ли называется.
То есть можно выбрать LAMP или LEMP и не мучится, как это делали для другого сайта на VPS ihor. Можно кстати сразу выбрать с установленным WordPress, это если переносить через плагин. Но мне этот вариант не очень нравится, все равно. При ручном переносе отчищаешь сайт от мусора, который появляется за годы установки/переустановки плагинов.
Установка WordPress
В моем случае был выбрана пред установка LAMP, 2 минуты и мы в консоли сервера. Сам процесс установки расписывать нет смысла, тем более он есть в доках Digital Ocean на русском языке.
Импорт базы данных
Можно через консоль, можно phpmyadmin поставить, такая инструкция тоже есть в официальной документации. Не суть важно, главное импортируем БД сайта в созданную новую БД. Запоминаем логин и пароль.
Копирование файлов
Отправляем на новую VPS, в папку var/www/ваш-сайт/wp-conten архивы созданные ранее: plugins.tar.gz, themes.tar.gz, uploads.tar.gz Удаляем старые такие папки и распаковываем свои.
Активируем сайт на Web-сервере
Копируем дефолтный конфиг Web-сервера, изменяем его под свой сайт. Активируем сайт и как бы все готового для первого запуска. На своем компьютере в hosts фале делаем запись новый IP + домен. Чистим кеш в браузере, заходим. Открылся, по http, ой забыли про SSL сертификат. И вот тут меня понесло….
III - установка/перенос SSL сертификата
Для начала попробовал установить бесплатный SSL сертификат проверенным методом. Не тут то было, появилась надпись следующего содержания:
Вылечилось это так:
Потом вроде все заработало, скрипт стал выполняться, но после введения домена и нажатия Enter появилась следующая надпись:
Ну да, логично, домен не резольвится еще по новому IP адресу. Только наш локальный компьютер знает его новый IP адрес. Попробовал просто взять сертификат со старого сервера. Закинул в папку, добавил руками настройки 443 порта в конфиг. Проверяю, ошибка сертификата. Не понятно почему. Дальше стал искать способы проверки без привязки к DNS записи. Убил весь день, но так ничего и не смог сделать. Тупо мозгов не хватило. Хотя вариантов на официальном сайте пруд пруди.
Но во время чтения инструкций, нарвался на информацию о том, что когда у тебя на VPS много других сайтов. Клиент Certboot пихает все сайты в один файл сертификата. Проверяю, точно:
На старом сервере делаю выпуск нового сертификата только для ddslook.com проверяю, все норм:
Переношу файлы сертификата и ключ на новый сервер, все заработало, ошибки сертификата нет. Теперь со спокойно душой изменяю IP адрес для домена на DNS хостинге.
Когда летом буду переносить сайт dds.kz с ihor на oblako.kz, для того что бы стать ближе к Казахстанским пользователям. Эта памятка мне очень пригодится ))