Как перейти с HTTP на HTTPS – простая инструкция установки SSL
Веб в своем развитии движется в направлении использования безопасного протокола шифрования HTTPS по умолчанию. Данное направление, помимо прочего, стимулируется и крупными поисковыми системами, как например Google, который еще в 2014 году объявил, что HTTPS станет сигналом SEO-ранжирования. Однако, кроме такого поискового сигнала, переход сайта на HTTPS хорош и другими «плюшками», например:
- Защита конфиденциальности пользователей (логины, пароли, кредитные карты и т.д.)
- Браузеры помечают сайты с протоколом HTTP как небезопасные
- Возможность использовать преимущества HTTP/2 (мультиплексирование, доступ к некоторым API и т.п.)
- Защита своего рекламного дохода от перехвата недобросовестными Интернет- и Wi-Fi-провайдерами (которые на незащищенных сайтах «крутят» свою рекламу)
Мы не будем подробно рассматривать эти и другие преимущества, а более детально остановимся на самом процессе перехода с HTTP на HTTPS. Ваше желание перейти на сайт с HTTPS принимается как свершившийся факт.
Этапы перехода на сайт HTTPS:
- Выбор и получение SSL сертификата
- Установка сертификата на сервер
- Перезапуск сервера
- Проверка установки сертификата SSL на хостинг
- Редирект с http на сайт https
Выбор и получение сертификата
Для начала вам нужно определиться с тем, бесплатный или платный вам нужен сертификат SSL-протокола. Небольшим сайтам и блогам вполне может хватить и бесплатного SSL-сертификата, или использования, например, самоподписанного (самозаверенного) SSL сертификата. Такие сертификаты не требуют дополнительных финансовых расходов, но имеют ряд существенных ограничений (например, короткий срок действия). Бесплатные сертификаты проще всего получить у хостера (если ваш хостинг достаточно «продвинут» и он выдает такие сертификаты; в этом случае хостинг-провайдер также поможет вам и с установкой сертификата). Бесплатные цифровые SSL-сертификаты выдают также и крупные центры сертификации (например, Let’s Encrypt, CloudFlare и похожие).
Платные же сертификаты имеют ряд дополнительных преимуществ, от которых и зависит их цена. Чем больше преимуществ вы хотите от цифрового сертификата, тем больше будет его цена. Например, самый дорогой SSL-сертификат (мультидоменный, с расширенной валидацией, «зеленой адресной строкой в браузере» и т.п.) обойдется в несколько сотен, а то и тысяч, долларов в год.
Цена бюджетных SSL сертификатов стартует от 10-15$ в год. Самыми известными центрами сертификации являются такие компании как Comodo, GeoTrust, Symantec и Trustwave. Повторюсь: многие хостинг-провайдеры являются дилерами крупных центров сертификации и цифровой SSL-сертификат можно купить напрямую у них; в этом случае хостинг-компания поможет вам и с его установкой.
Установка сертификата на сервер
После выбора и получения сертификата SSL (платного или бесплатного) пришла пора установить его на свой сервер. Тут могут быть разные пути в зависимости от того, где вы приобрели сертификат. Будем исходить из того, что вы выбрали платный сертификат и установить его вы взялись самостоятельно.
Крупные хостеры позволяют устанавливать цифровой сертификат через панель управления хостингом (например, через ISPmanager или DirectAdmin). В этом случае от вас требуется минимум усилий: перейти в соответствующий пункт (например, «Сертификаты SSL») и дальше кликать на нужных пунктах. Или скопировать нужные данные в соответствующие поля формы. Такой метод установки является рекомендуемым.
ВНИМАНИЕ: следующий метод установки предназначен только для опытных пользователей, которые знают, что делают.
Несколько сложнее дело обстоит с установкой через SSH (или FTP):
- вручную копируем файлы сертификата (сам сертификат с расширением .crt и закрытый ключ с расширением .key) на сервер
- изменяем файл настроек конфигурации веб-сервера (например,
httpd.conf
для сервера Apache, илиnginx.conf
для сервера Nginx), где прописываем включение режима SSL, а также путь к файлам сертификата. - перезапускаем веб-сервер
Пример строк в файле конфигурации для включения режима SSL при веб-сервере Apache:
<VirtualHost x.x.x.x:443> DocumentRoot /var/www/ ServerName ВашДомен.com SSLEngine on SSLCertificateFile {путь к файлу}вашдомен.crt SSLCertificateKeyFile {путь к файлу}вашдомен.key SSLCertificateChainFile {путь к файлу}root.crt </VirtualHost>
где:
x.x.x.x – это IP-адрес вашего домена,
а 443 – это TCP-порт, который слушает HTTPS по умолчанию (для HTTP по умолчанию 80-й порт)
Пример строк в файле конфигурации для включения режима SSL при веб-сервере Nginx:
server { listen x.x.x.x:443; server_name ВашДомен.com; ssl on; ssl_certificate {путь к файлу}вашдомен.crt; ssl_certificate_key {путь к файлу}вашдомен.key; }
где:
x.x.x.x – это IP-адрес вашего домена
Перезапуск сервера
ВНИМАНИЕ: выполняйте этот пункт, только если вы устанавливаете сертификат вручную, и вы являетесь опытным пользователем, который знает, что делает.
После установки SSL-сертификата на сервер нужно перезапустить веб-сервер, чтобы изменения вступили в силу.
Примеры команд для перезапуска веб-сервера (для различных ОС команды могут отличаться):
Для сервера Apache выполните SSH-команду
/etc/init.d/httpd restart
Для сервера Nginx выполните SSH-команду
/etc/init.d/nginx restart
Проверка установки сертификата SSL на хостинг
После установки сертификата пора проверить успешность такой установки. Самый простой способ проверки сертификата для сайта с https – набрать в адресной строке браузера адрес своего сайта с указанием перед доменом https://. Если установка была успешной, то ваш сайт должен отображаться нормально и все стили, скрипты, картинки и страницы должны нормально подгружаться. Такое редко в реальной жизни бывает с первого раза, но тем не менее :))
Протестировать установку на сайт https-а можно и через онлайн-инструменты (например, SSL Labs или SSL Checker).
Редирект с http на сайт https
После успешной установки и проверки на сайте https`а можно все запросы к своему домену перенаправлять на обязательные SSL/HTTPS ответы.
Ниже указан фрагмент кода, который нужно для этого добавить в файл .htaccess в корне сайта (если у вас сервер Apache).
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
ИЛИ так:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://vashdomen.com/$1 [R=301,L] </IfModule>
Для сервера Nginx директива будет следующая:
# nginx location / { rewrite ^(.*)$ https://vashdomen.com/$1 redirect; }
(не забудьте везде использовать вместо vashdomen.com свой собственный домен)
(также не забывайте делать бекап файлов и базы данных перед их изменениями)
Рекомендуем также ознакомиться:
Счастливого вашему сайту HTTPS’а!
Последние посты
Как выбрать идеальный ноутбук: Полный гайд
Выбор ноутбука может быть сложной задачей в мире, где рынок переполнен вариантами на любой вкус… Читать далее
Томас Эдисон
Наша самая большая слабость заключается в том, что мы быстро сдаемся. Самый верный способ добиться… Читать далее
Самые красивые и впечатляющие мосты со всего мира (ТОП-10)
Мост — это нечто большее, чем просто сооружение, соединяющее два берега. Для того, чтобы появился… Читать далее
Соломон
Жизнь нас учит, что свою пару мы познаем, когда разводимся, своих братьев мы познаем, когда… Читать далее
Чак Паланик
Кто может — тот делает. Кто не может — тот критикует Чак Паланик Читать далее
Ричард Бах
Ни одно желание не дается тебе отдельно от силы, позволяющей его осуществить. Хотя, возможно, для… Читать далее