Много статей не имеет срока устаревания. Есть смысл смотреть и 2011, и даже 2008 год. Политика сайта: написать статью, а потом обновлять ее много лет.
Открыта карта ВТБ для материальной поддержки сайта: 5368 2902 0040 0838.

Рекламодателям! Перестаньте спамить мне на почту с предложениями о размещении рекламы на этом сайте. Я никогда спамером/рекламщиком не был и не буду!
" title="Написать письмо">Написать письмо

Статистика

Пользователи : 1
Статьи : 1350
Просмотры материалов : 5002353
 
Переход с HTTP на HTTPS (27.07.2020). Печать E-mail
2020 - Июль
27.07.2020 18:00
Save & Share
Предыстория: на моем сайте появились сиськи. Решения проблемы было 2: работать с Content Security Policy (CSP) (сложно), перейти с HTTP на HTTPS (давно пора). Традиционно, для любой крупномасштабной операции с сайтом (а приписывание "s" - это глобальное событие), переход вылился в 11-часовой квест.

Сертификат SSL всегда был платным и уникальным для домена/поддомена. Первым серьезным шагом было примирение с потерей 750руб/год на каждый домен/поддомен - что выливается минимум в 3000руб/год. Рассматривался вариант отказа от поддоменов, объединив путешествия по Москве и области (а также фотографии) с основным сайтом. Но был отклонен, т.к. миграция сайта (в данном случае ручной перенос информации) - муторно и долго.

Внезапно оказывается, что существует бесплатный SSL-сертификат Let's Encrypt (на 1 домен) и Let's Encrypt WildCard (на 1 домен и все поддомены). На сайте хостера отсутствует в списке SSL-сертификатов, но доступен для заказа в древе услуг в достаточно глубоком месте. Далее его необходимо выбрать в настройках домена (включив SSL и переадресацию HTTP->HTTPS заранее).

Сделать бакап баз данных (каждую базу отдельно) и всей виртуальной площадки целиком (обращаться туда придется много раз) - нужно обязательно.

С помощью Notepad++ заменяются вхождения http://www.bad-good.ru на httpS://www.bad-good.ru. Казалось бы, ничего сложного, но есть нюансы:
- в БД каждого домена и поддомена нужно делать эти изменения, равно как и в их файлах. Потому что есть ссылки друг на друга - и ссылки не должны переадресовываться: может пострадать рейтинг. И если в БД с помощью Notepad++ изменения делаются быстро (скачал БД, удалил таблицы с сервера, внес изменения в БД автоматической заменой, залил ее обратно), то упоминания в файлах сайта оказываются в самых разных местах (ищутся с помощью Total Commander в архивной копии и правятся вручную). Это - основные временные потери (например, для изменения файла нужно изменить права 444 на 777 - а потом вернуть права обратно);
- все системы безопасности сайта, направленные на защиту контента сайта, восстанут против своего хозяина. Изображения не будут отображаться, потому что загружаются не на родном сервере http://сайт, а с какого-то стороннего httpS://сайт. RewriteRule сойдет с ума и запустит переадресацию на HTTP, когда хостер уже запустил переадресацию на HTTPS, - бесконечный цикл. Браузер начнет вышибать домен ошибкой "SSL_ERROR_INTERNAL_ERROR_ALERT" (ожидать активации сертификата нужно 1 час);
- поддомены вообще откажутся работать, несмотря на правильно выставленные настройки во всех его файлах. Оказывается, Let's Encrypt WildCard работает только до 3 уровня включительно. Оказывается, сертификат выпускает сторонняя организация за пределами РФ. Оказывается, эта организация может отозвать сертификат без объяснения причин. И оказывается, сертификат считает "www" доменом 4-го уровня - поэтому ни один поддомен не работает;
- значит, это принудительная замена WWW на пустоту, которая ранее приводила к крашу сайта и очень опасна в плане потери рейтинга. Опять лезешь по всем доменам и поддоменам, исправляя повсеместно "www." на пустоту, параллельно включая в настройках площадки переадресацию WWW->без_WWW для каждого адреса. Больше всего пострадал основной домен, т.к. в 2008 году отказ от WWW не планировался - и в CMS все было заточено под него;
- значит, 4 тестовые площадки тоже накрываются - и их нужно создавать заново (проще скопировать файлы и внести привычные изменения - чем опять возиться с переименованиями);
- в сертификате не прописалось имя владельца - оказалось, некритично;
- срок действия сертификата - 3мес, продлевается автоматически, станет платным - уведомят, не дав автоматом пройти первой оплате;
- обнаружилось, что существует тег ViewPort для удобства просмотра сайта с браузера. Размещается в <header>, однако в CMS его нужно было вставить в определенный файл по настолько длинному пути - что не подлежит вспоминанию и даже гуглению из-за отвращения;
- для оценки мобильной страницы пришлось заново регистрироваться в гугле, т.к. вебмастера у него больше нет - но есть Search Console. Гугл требует проверку подлинности домена - требуется разместить запись в DNS-зоне. Как это делать - вопрос отдельный, общение с регистратором имен. И уж точно отдельный вопрос: мои документы у регистратора просрочены - пришлось сканить и высылать им паспорт;
- когда все-таки гугл меня пустил в средства разработки - выяснилось, что сайт еще имеет некоторые ошибки (в т.ч. в robots.txt), которые нужно было поправить - чтобы гугл сделал нормальный анализ. Начинаешь ковырять сайт и исправлять ошибки, которые нашел анализ гугла;
- когда впервые заходишь по HTTPS - браузер показывает желтый треугольник с восклицательным знаком вместо зеленого замочка. Это означает, что на сайте присутствуют внешние ссылки, в которых содержится "http://", и являются незащищенным содержимым. Начинаешь по всей базе и файлам виртуальной площадки рыть эти внешние ссылки. Получение зеленых замочков на каждом из адресов - еще одна емкая по времени проблема;
- в процессе обработки ссылок обнаружились "http://www.w3.org/1999/xhtml" и "http://www.w3.org/TR", которые задолбался вычищать, ведь они же "http://".

Если знать все тонкости - миграция займет часов 7 (но даже такое время прилично: по факту - 1 рабочий день). За 11 часов поддомены не работали часов 10, домен на продолжительное время падал раза 4, в конце болели пальцы, а кнопки на клавиатуре блестели чистотой.

Итог на следующий день: спам-сиськи исчезли навсегда.

Этот пост - яркое доказательство того, что спам и быдло, его рассылающее, лишают нормальных людей времени и денег. Бесплатность сертификата SSL оказалась ну очень приятной неожиданностью - а ее могло и не быть.

И прямо в эту минуту вижу косяки: не все ссылки поддоменов в домене оказались заменены. И количество открываемых материалов на страницу слетело с 2000 до 50. Сколько еще настроек сбито - неизвестно.

(добавлено 28.07.2020) Странный феномен: посещаемость резко выросла. Возможно, поисковики более лояльны к тем, кто имеет сертификат SSL и исправляет ошибки сайта, - и продвигают сайт выше по списку. То есть, через гугл стало народу приходить больше - в то время как через мейл-ру, наоборот, сократилось: что-то не то со счетчиком - скатился на 100 позиций вниз. А именно: если рисунок счетчика указан через http - счетчик работает нормально, но теряется зеленый замочек рядом с адресом. Естественно, выбор сделан в пользу SSL - и рисунок счетчика через https не отображается.

Программа Xenu не умеет сканировать сайт с HTTPS: сразу происходит connection reset. Нужно искать другой способ сканировать сайты на битые ссылки.

(добавлено 01.08.2020) Программа Xenu так и не смогла работать с HTTPS и отправлена на покой. Удалось найти ей единственную адекватную замену: Screaming Frog SEO Spider. В ней также удобно просматривать результаты по различным категориям: HTTP, HTTPS, номер ошибки и т.д.

В результате было найдено порядка 600 внутренних ссылок, начинающихся на http://, а не https://. Автозамена в Notepad++, получается, не совсем полная.

Также есть порядка 20 внешних ссылок, которые тоже перешли на HTTPS. Каждый год приходится внешние ссылки сканировать и править (выборка из 1500шт за 12 лет). Будете делать свой сайт - любыми способами избегайте внешних ссылок, в идеале их должно быть ни одной. А если требуется указать - так и стоит писать: "на ютубе есть юзер такой-то, видео такое-то".

Во время обновления плагинов в админке, после перехода на HTTPS, один из поддоменов полностью накрылся. Теперь нужно запрещать обновления на всех поддоменах. Это оказался Nextgen Gallery. Связка нового плагина с невозможностью обновления самой админки (на сервере не та версия PHP). Изменение же версии PHP (понятно, еще одна миграция) в прошлый раз привела к проблемам - поэтому трогать пока (или вообще) не надо.

Также пришлось переписывать ПО по сбору контента сайта.

Суммарно - еще минус 1 день. Потому что еще сканировать все поддомены.
Обновлено ( 01.08.2020 19:03 )
 
 

Последние новости


©2008-2020. All Rights Reserved. Разработчик - " title="Сергей Белов">Сергей Белов. Материалы сайта предоставляются по принципу "как есть". Автор не несет никакой ответственности и не гарантирует отсутствие неправильных сведений и ошибок. Вся ответственность за использование материалов лежит полностью на читателях. Размещение материалов данного сайта на иных сайтах запрещено без указания активной ссылки на данный сайт-первоисточник (ГК РФ: ст.1259 п.1 + ст.1274 п.1-3).