Як перейти з HTTP на HTTPS – проста інструкція встановлення SSL

Як перейти з 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 сертифікату. Такі сертифікати не вимагають додаткових фінансових витрат, але мають ряд істотних обмежень (наприклад, короткий термін дії). Безкоштовні сертифікати найпростіше отримати у хостера (якщо ваш хостинг досить «просунутий» і він видає такі сертифікати, в цьому випадку хостинг-провайдер також допоможе вам і з встановленням сертифіката). Безкоштовні цифрові 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’а!



Напишіть тут свою думку/питання

Ваша пошта не публікуватиметься. Обов’язкові поля позначені *