Site icon Cospi.ru

Как установить SSL сертификат на сайт или 3 шага к HTTPs

После того как Google сообщил о важности наличия защищённого SSL сертификата и о том, что сайты без него будут помечаться в панели браузера как небезопасные, началась повсеместный переход на протокол https.

Описывать о том, что такое защищённый протокол не буду, эта информация уже много где обсуждалась и описывалась. Если кто не знает, то почитайте на вики.

Ну а в этой статье давайте разберемся, как последовательно и правильно перенести веб-проект на https и при этом максимально безопасно склеить сайты как в Яндекс, так и в Google.

1. Покупаем SSL сертификат

В рамках данной статьи будем рассматривать сертификаты с подтверждением доменного имени и бесплатный let’s encrypt, который, к слову, подключён и к этому блогу.

Какой выбрать SSL сертификат для своего сайта?

Существует с десяток центров сертификации. Но самые популярные: Comodo, GeoTrust и GlobalSign.

Если не брать бесплатные варианты и самые дешёвые сертификаты, то для большинства случаев подойдут следующие:

Основной минус сертификатов которые дешевле этих, в том, что длина ключа подписи может быть равна 1024 битам. Google и современные браузеры советуют использовать подпись длиною 2048 и более бит. Все вышеописанные сертификаты предоставляют именно такую длину ключа.

Использование бесплатного сертификата Let’s Encrypt

Если проект не коммерческий и не несёт в себе какой-то любой другой функции, связанной с личными данными, регистрациями, введением паролей, то можно использовать бесплатный let’s encrypt. Он обладаем всеми соответствующими характеристиками.

Если планируете подключать сервисы онлайн платежей, то, например, Robokassa с бесплатными сертификатами не будет работать!

Я для себя выбрал Comodo Essential SSL (покупаю по 650 рублей у датабор). Сложно сказать почему, наверно больше сыграл тот момент, что этот центр сертификации самый популярный в мире:


Важно знать:

Если вы не уверены, стоит ли тратить деньги на покупку SSL, то для вас может быть выход установка бесплатного lets encrypt, с переклейкой сайта и определением главного зеркала. А если возникнет в будущем необходимость, то подключите платный сертификат. Для посетителей и поисковиков такой переход будет не заметен и потерь в плане трафика не будет.

2. Подготовка сайта для переезда на HTTPs

Алгоритм действий идентичный для всех систем управления контентом, но я буду делать акцент на WordPress, потому что все сайты у меня на нём и решать некоторые проблемы приходилось с ним.

1 шаг. Устанавливаем новый адрес сайта в настройках WordPress
Эту замену можно сделать и в базе данных на втором шаге. Но могут возникнуть проблемы, если вы выбрали способ замены ссылок на относительные (подробнее ниже).

Замена адреса сайта в административной части WordPress (Настройки -> Общие).

Меняем все внутренние ссылки (перелинковочные) на относительные, либо на https:

//cospi.ru/contact/
/contact/

Когда я переношу сайт на https, то ссылки меняю автозаменой в БД не на относительные, а на https. С помощью обычной автозамены в notepad:

https://cospi.ru на https://cospi.ru

Автозамена с помощью SQL команды в phpMyAdmin:

UPDATE wp_posts SET post_content = REPLACE (post_content,‘https://cospi.ru’,‘https://cospi.ru’);

Если вы воспользовались этой командой, то знайте, что вам надо пройтись так по всем таблицам базы данных (кроме wp_options), так как ссылки ещё есть в таблице с комментариями и так далее. Я лично делаю бекап БД и меняю адреса сразу во всём файле.

Внимание!

Не меняйте ссылки на относительные во всей базе данных, относительными можно делать только для wp_posts (команда выше). Иначе вы замените url сайта в таблице wp_options и потом будут проблемы с авторизацией в админке.

Вот прочитал всё вышеописанное и пришёл к мнению — не надо в базе данных WordPress никаких относительных ссылок, будет меньше проблем! Пусть будут абсолютные.

2 шаг. Меняем все ссылки в шаблоне на относительные, либо на https
Для этого шага советую использовать опять notepad. Выкачать все файлы шаблона на локальный компьютер и автозаменой во всех файлах поменять адреса на относительные:

http:// на //

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

Если на какой-нибудь странице останется ссылка со старым протоколом, то не загорится в браузере зелёный замочек и слово «Надёжный» в Chrome:

3 шаг. Мелкие правки по шаблону

— Чтобы админка сайта на WordPress работала через защищённый протокол. Добавьте в файл wp-config код:

define(‘FORCE_ SSL _ADMIN’, true);

— Решаем проблему со статистикой переходов в Яндекс Метрике. Необходимо на сайт добавить мета тег referrer, это даст возможность отдавать referrer тем посетителям, которые переходят с вашего сайта по ссылкам с не защищённым протоколом.

<meta name=«referrer» content=«origin»>

Чтобы на той стороне, куда идёт трафик, веб мастера в своих системах аналитики смогли отслеживать переходы с вашего сайта. Вам всё равно, а рекламодателям приятно!

На заметку

Сайт будет переклеиваться в поисковиках, будут меняется адреса страниц. Можно воспользоваться этим моментом и поменять, к примеру, неудачную структуру ЧПУ ссылок, перенести какие-то страницы в другой раздел и так далее.

3. Склеиваем сайт

Я не затрагиваю технический процесс подключения сертификата на сервере, я с ним не знаком, да и думаю среди моих читателей мало системных администраторов, которые будут самостоятельно разбираться с этим процессом.

В ISPmanager и подобных консолях реализована автоматическая возможность установки SSL сертификата. В специальное окно необходимо добавить полученный после оплаты и проверки доменного имени коды:

RSA PRIVATE KEY и BEGIN CERTIFICATE

Если вы всё сделали правильно, то сайт должен быть доступен по двум протоколам. После чего можно переходить непосредственно к склеиванию http версии к https. Этот процесс можно разделить на четыре шага:

1. 301 редирект со старого на новый домен.
2. Добавление директивы Host и доступный файл Robots.txt для не главного зеркала
3. Сообщить поисковикам о ваших намерениях поменять главное зеркало сайта.
4. Просканировать сайт на наличие битых ссылок, ошибок.

1. Настраиваем перенаправление

Я сторонник сразу склеить сайты 301 редиректом, но существует мнение, да и сам Яндекс писал у себя на блоге, что лучше оставить две версии сайта доступными для поискового робота, при этом указать главное зеркало в директиве Host и в панели Вебмастера. А 301 редирект включить только после того, как версия c https будет признана главным зеркалом.

Может быть, такой подход и имеет смысл для действительно больших проектов, где несколько десятков тысяч страниц. Но во время переноса информационных сайтов, я не успел заметить серьёзных потерь в трафике, связанных именно с 301 редиректом. Яндекс склеивает сейчас действительно быстро, не так как раньше. За 2-3 недели пока идёт процесс склеивания, старые страницы просто не успевают выпасть из индекса за счёт 301 редиректа и трафик продолжает поступать. Изменение поискового трафика на одном информационном проекте:

28 апреля был установлен SSL сертификат с перенаправлением, а 14 мая Яндекс уже склеил зеркала

Код для 301 редиректа в файле .htaccess:

RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

2. Правим директиву Host

Главное зеркало в файле robots.txt указываем в таком виде:

Host: https://cospi.ru

И отключаем редирект для файла robots.txt в .htaccess:

<FilesMatch «robots.txt$»>
RewriteEngine off
FilesMatch>

Это необходимо для того, чтобы файл с инструкциями индексирования для поисковика был доступен как с http, так и https версии. После того, как будет определено главное зеркало, можно убрать это исключение.

3. Добавление сайт в панели Вебмастеров

В Яндекс Вебмастере заходите в раздел «Настройки индексирования – Переезд сайта», там добавляете главное зеркало. После удачного склеивания ваш основной сайт и его зеркало будет выглядеть вот так:

В консоли Google для веб-мастеров необходимо добавить новый сайт с https, подтвердить его и нажать на шестерёнку, а там выбрать «Изменение адреса»:

Сканируем сайт на ошибки

После установки 301 редиректа, обязательно просканируйте сайт на наличие битых ссылок, изображений и т.д. Можно с помощью программы Xenu’s Link Sleuth.

Даже если вы думаете, что везде заменили ссылки на относительные, всё много раз проверили. Я Вас уверяю, ошибки найдутся, особенно если сайт большой! Если на каких-то страницах всё равное не горит зелёный замочек или у вас перестали работать какие-то скрипты, плагины, то открывайте исходный код страницы и ищите все адреса с http.

Всё, осталось только ждать. Через 2-3 недели Яндекс полностью склеит сайты и в поисковой выдаче появится версия с защищённым протоколом HTTPs. Google потребуется примерно столько же времени.

Проверка SSL сертификата на подлинность

Проверить установку и подлинность вы можете сервисом rus.gogetssl.com/check-ssl-installation. В сети много подобных сервисов, которые показывают уровень сертификата, ключ подписи, центр сертификации, срок действия и т. д.

Оценить статью post