Let’s Encrypt + ISPmanager = халява
В прошлой статье, я рассказал, что перевел свой вирусный сайт на https. Сейчас расскажу, как я это сделал.
Для начала стоит сказать, что на моих серверах стоит ISPmanager, а PHP у меня работает в связке Apache + Nginx.
В качестве сертификата я выбрал бесплатный Let’s Encrypt, который признан всеми браузерами и считается абсолютно безопасным. Почему на COMODO или еще какой-то платный, да потому что сайтов у меня много, и скорее всего все придется переводить на https, а платить ежегодно по 900 рублей за сайт — это дофига.
Приступаем:
- Изучаем этот мануал по ссылке и делаем все как там написано.
- Далее идем в панели ISPmanager Домены -> WWW-домены, выбираем нужный сайт и жмем Конфиг.
- Прокручиваем вниз и в нижней конфигурации вставляем перед строками location / { следующий код:
location ~* ^/.well-known/ { allow all; }
- Дальше скачиваем и устанавливаем себе на сайт Search Replace DB. Эта тулза позволит вам заменить все http://site.ru на https://site.ru в вашей базе.
- После идем в wp-config.php и вставляем туда следующие строки:
define('WP_HOME', 'https://SITE.RU/'); define('WP_SITEURL', 'https://SITE.RU/'); define('FORCE_SSL_ADMIN', true); if(strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) { $_SERVER['HTTPS'] = 'on'; }
- Далее, если ваша тема не оптимизирована под https, как у меня, и подгружаются внутренние скрипты через http, то вам понадобиться вставить мега костыль, который решит эту проблему, но его надо будет обновлять каждый раз после обновления wordpress. В общем, в файле index.php вместо
require(dirname(__FILE__) . '/wp-blog-header.php');
надо будет вставить:
ob_start(); require(dirname(__FILE__) . '/wp-blog-header.php'); $html_of_page = ob_get_contents(); ob_end_clean(); echo str_replace('http://SITE.RU', 'https://SITE.RU', $html_of_page);
Вот в принципе и все. Я думаю, что должно быть и более изящное решение, но у меня получилось так, если кто знает проще способ — пишите в комментах.
27 Сен, 2016
GG
27 сентября 20163 — зачем это?
4 пункт разве не проще сделать через pma? экспорт-замена-импорт
5 — можно ведь сделать через админку, разве нет?
6 — гораздо проще пройтись по файликам и сделать поиск-замену, делается текстовым редактором за несколько секунд и костыли городить не нужно
да и в целом, мне кажется проще купить комодо за 10$ на 3 года, всяко будет лучше бесплатного
Archil
27 сентября 20163. Без этого не подтверждался домен на стороне LetsEncrypt. По этому поводу бился очень долго с хостинг провайдером и создателями ISPmanager.
4. Так тоже можно.
5. Неа, через админку не поможет. По крайней мере мне не помогло.
6. Тоже вариант.
Покажите сертификат комодо за 10$ на 3 года.
seoonly.ru
27 сентября 2016Красота! Спасибос!
SEOmd
28 сентября 2016спасибо
у тебя nginx?
Archil
29 сентября 2016На том сайте идет связка Apache + Ngninx