Вопрос или проблема
У меня на компьютере с Ubuntu 20.04 запущена среда разработки WordPress Multisite на LAMP. Я недавно решил перенести свою среду разработки на Vbox VDI с установленным Debian 10.5, LAMP и ISPConfig.
На старом сайте разработки был самоподписанный SSL-сертификат, в то время как на новом сайте разработки используется http.
Я обновил префиксы таблиц, URL и т. д., и внутри WordPress нет проблем с перенаправлением (то есть миграция произошла успешно), однако самоподписанный SSL-сертификат со старого сайта разработки вызывает ошибки SSL в моих веб-браузерах, когда я пытаюсь открыть новый сайт разработки.
Старый сайт разработки находился по адресу https://localhost.example.com
в то время как новый сайт разработки работает по адресу http://tester1.example.com
Веб-браузеры продолжают пытаться загрузить https://tester1.example.com
Мой вопрос(ы):
1.) Что я могу сделать с новым сайтом разработки, чтобы веб-браузеры не путали его со старым сайтом разработки и перестали пытаться загрузить его по адресу https://tester1.example.com (удалить определенные таблицы, отредактировать vhost и т. д.?)
2.) Если необходимо, есть ли командный терминал, который я могу использовать для удаления самоподписанного сертификата или мне нужно перейти в /etc/ssl/ и вручную его удалить?
спасибо
Я бы предложил самый простой способ решения этой проблемы — включить https на новом сайте. HTTPS — это лучшая практика, и если вы вернетесь обратно к HTTP, вам будет трудно позднее.
Тем не менее, вы можете исправить свою проблему, выполнив поиск и замену “https://localhost.example.com” на “http://tester1.example.com” в вашей базе данных. Лучший способ сделать это — использовать инструмент “wp-cli“, а затем выполнить поиск и замену с помощью команды
wp search-replace "https://localhost.example.com" "http://tester1.example.com"
Запустите из директории вашей установки WordPress, как пользователь WordPress (или, если вам нравится немного рисковать, как root, добавьте флаг –allow-root)
Вы можете просто экспортировать вашу базу данных и выполнить поиск и замену с помощью вашего любимого текстового редактора или SED, а затем импортировать это, но это не всегда срабатывает — это связано с тем, что WordPress сериализует некоторые данные, а эта команда не обрабатывает это. Раньше я делал это таким образом и потратил много времени на решение проблемы с одним конкретным сайтом, который перестал работать в результате, пока не узнал правильный способ сделать это.
Ответ или решение
Удаление самоподписанного SSL сертификата может быть важной задачей, особенно когда вы переносите ваш рабочий сайт с одной среды на другую, как в вашем случае с WordPress Multisite. Давайте детально рассмотрим, как решить возникшие у вас проблемы.
1. Остановка конфликта с сертификатом
Проблема, с которой вы столкнулись, заключается в том, что браузер пытается загрузить новый сайт (http://tester1.example.com) через HTTPS (https://tester1.example.com), так как в его кэше остались данные о сертификате с вашего старого сайта. Чтобы устранить эту ошибку, выполните следующие действия:
1.1. Очистка кэша браузера
Первым делом стоит очистить кэш вашего браузера. Большинство современных браузеров сохраняют информацию о старых сертификатах, что может вызывать проблемы с загрузкой нового сайта. Для очистки кэша можно воспользоваться следующими шагами:
- Google Chrome: Настройки > Конфиденциальность и безопасность > Очистить историю.
- Firefox: Настройки > Конфиденциальность и безопасность > Удалить данные.
- Safari: История > Очистить историю.
1.2. Изменение базы данных WordPress
Поскольку вы уже изменили URL в базе данных, но кажется, что старые ссылки все еще не удалены, рекомендуется выполнить поиск и замену в базе данных. Вы можете использовать инструмент WP-CLI для этой процедуры. Здесь представлен пример команды, который вы можете выполнить из директории установки WordPress:
wp search-replace "https://localhost.example.com" "http://tester1.example.com"
Эта команда заменит все упоминания старого URL на новый URL.
2. Удаление самоподписанного сертификата
Если вы все-таки решили, что необходимо удалить самоподписанный сертификат, выполните следующие действия:
2.1. Удаление сертификата через терминал
Чтобы удалить самоподписанный сертификат, вы можете использовать команду в терминале. Прежде всего, вам нужно найти путь к вашему сертификату. Обычно они располагаются в директории /etc/ssl/certs/
.
Выполните следующие команды:
sudo ls /etc/ssl/certs/ # Смотрите, какие сертификаты там находятся
После того как вы нашли ваш сертификат, выполните:
sudo rm /etc/ssl/certs/<имя_вашего_сертификата>.crt
sudo rm /etc/ssl/private/<имя_вашего_сертификата>.key
Замените <имя_вашего_сертификата>.crt
на название вашего самоподписанного сертификата. Убедитесь, что вы делаете резервные копии, прежде чем удалять какие-либо файлы.
2.2. Проверка конфигурации виртуального хоста
После удаления сертификата вам следует также проверить конфигурацию вашего виртуального хоста в Apache. Убедитесь, что для нового сайта используется HTTP и что нет конфигураций для автоматической переадресации на HTTPS. Проверьте файлы конфигурации в директории /etc/apache2/sites-available/
.
Откройте файл вашего виртуального хоста и убедитесь, что он выглядит примерно так:
<VirtualHost *:80>
ServerName tester1.example.com
DocumentRoot /var/www/tester1
...
</VirtualHost>
После внесения всех изменений перезапустите Apache командой:
sudo systemctl restart apache2
Заключение
После выполнения вышеописанных действий, проблемы с загрузкой вашего нового сайта по неправильному протоколу HTTPS должны исчезнуть. Добавление HTTPS на ваш новый сайт может быть хорошей идеей, так как это улучшит безопасность и повысит доверие пользователей, однако вы всегда можете обратиться к решениям без HTTPS, пока ваша разработка не будет завершена. Если у вас остались вопросы, не стесняйтесь обращаться за дополнительной помощью!