Поддавшись моде, перевёл некоторые свои сайты на SSL (т.е. https-протокол). В первую очередь, разумеется,
основной блог про терминалы QUIK, но не только его. По дороге узнал для себя много нового.
Во-первых, оказывается нынче уже нет надобности рассаживать https-сайты непременно по разным IP-шникам; технологии наконец-то достигли недостижимых высот, всё работает на одном IP. (Говорят, что не работает на IE6 в Windows XP. Совершенно случайно, у меня до сих пор именно XP и IE6 в ней так родной и стоит. Проверил, сайты отображаются и там.)
Во-вторых, отлично существуют бесплатные SSL-сертификаты, причем один сертификат можно брать на несколько сайтов сразу. Я взял сертификаты на
WoSign. Интерфейс понятный, правда после регистрации, залогинившись на сайте, попадаешь на абсолютно китайскую страницу развесистого меню, где нет переключателя на английский вообще. Варианты действий: либо смотреть названия страниц, куда переводят ссылки из меню, названия страниц понятные; либо, что проще, после логина вернуться снова на стартовый URL WoSign (приведён выше), тогда будет английский.
Т.к. можно было сертификаты сделать мультидоменные, то сделал один сертификат на все сайты. Правда после установки сертификатов я так и не понял в чем смысл выпускать один сертификат на несколько сайтов. Ведь и одиночных (на один сайт) бесплатных сертификатов можно выпустить сколько угодно. Вероятно не понимаю из-за того, что я не совсем верно применил "многодоменность" сертификата. Возможно подразумевается, что это будут суб-домены одного основного домена и именно для этого есть смысл делать один сертификат. Я же сделал один сертификат на несколько разных доменов второго уровня, при этом контрольная панель моего хостинга устроена так, что нет возможности буквально один сертификат приделать к разным сайтам, для каждого сайта сертификат устанавливается раздельно (хотя если через конфиги apache делать, то это вполне реализуемо, на сколько я понимаю). Поэтому один и тот же сертификат я загрузил на несколько сайтов несколько раз. В итоге всё работает, хотя, вероятно, позже переделаю на раздельные сертификаты для каждого сайта.
И, в-третьих, про перевод сайта на работу по https.
Технически перевод сайта на https протокол подразумевает три этапа:
- получение сертификата;
- прикручивание сертификата к сайту;
- адаптация сайта на полностью корректную работу по https.
Про этапы эти я знал, но для меня стало совершенной неожиданностью то, что третий этап - самый объёмный по трудозатратам и времени. Потому как чтобы увидеть в адресной строке браузера заветный зелёный замочек, необходимо чтобы весь контент сайта отдавался по валидному https. И тут вдруг всплывает множество нюансов, которые этому препятствуют:
- в тексте есть картинки со своего же сайта, но URL картинок был указан с http;
- на странице есть счётчики посещаемости, которые загружаются по http;
- в тексте есть ссылки на другие страницы этого же сайта, но ссылки опять же начинаются с http, а не https, как теперь требуется;
- на странице есть картинки, загружаемые с других сайтов, URL которых, конечно же, прописан с http;
- и т.д.
Получается, что все эти моменты необходимо исправить в исходниках всех страниц сайта. Страниц много.
В интернете можно найти готовые инструкции как поправить текст страниц в разрезе каждой конкретной CMS, в том числе как поправить ссылки в тексте постов блога (если речь про сайт-блог) или сообщениях форума (если у нас сайт-форум), однако всё это требует некоторого времени, а всё вместе - весьма много некоторого времени. Попутно выясняется, что есть счётчики с каталогов, которые вовсе не умеют отдавать их по https. А если ваш сайт это еще и форум, на котором картинки подгружаются со сторонних ресурсов, то в общем случае на таких страницах и вовсе не получится сделать всё как надо, т.к. найти все ссылки на картинки в тексте - само по себе не просто, а ведь требуется ещё и проверить, что каждый уже использованный сайт хостинга картинок может отдавать картинки по https. Причем с форумом данная проблема останется, т.к. пользователи будут писать новые сообщения, вставлять в них картинки со сторонних хостингов картинок; вариантом может стать лишь обязательно загрузка картинок на свой сайт, но это место на хостинге, которое всегда не дешёвое.
Так что если когда задумаете переводить сайты на https - не забудьте учесть в планах время на третий пункт. Он, как я уже говорил, самый объёмный.