Змінюємо роботу CMS Joomla 1.015 з http на https
Думаю всі вже знають що з січня 2017 року найбільша пошукова система Google починає у браузері Chrome 56 версії відмічати сайти які збирають дані користувачів і не використовують захищений режим роботи як небезпечні.
Іншими словами якщо у Вас на сайті є реєстрація користувачів, і сторінки реєстрації та авторизації працюють у звичайному режимі то вони будуть помічені як небезпечні. Таким чином Google намагається попередити користувачів інтернету, що дані які будуть введені на цій сторінці не захищені і можуть бути викрадені зловмисниками.
Виглядає це приблизно так:
Думаю не треба пояснювати, що якщо користувач побачить це повідомлення, то навряд чи він буде рееструватися і тим більше далі залишиться на Вашому сайті.
Крім того вже найближчим часом ця перевірка буде працювати не тільки на сторінки де потрібно вводити особисті дані а і на всіх сторінках сайту.
І це ще не все! Сайти яки працюють у захищеному режимі при видачі результатів пошуку будуть займати більш високі сходинки ніж не захищені.
З вище сказаного випливає єдиний висновок – сайти треба переводити в захищений режим.
Один із моїх перших сайтів ще досі працює на CMS Joomla 1.015. Хтось зараз скаже – давно вже треба його оновити, так я погоджусь з цим і скажу, що робота над новим сайтом вже іде, але поки він працює і треба його перевести на захищене з’єднання. Що насправді не складно і зараз я це і буду робити.
Загалом процес переведення роботи сайта в захищений режим в мене вийшов такий:
- Я отримав цифровий SSL сертифікат для захищеного режиму роботи мого домену.
- Встановив цей сертифікат на сервер на якому працює сайт.
- Змінив роботу самого сайту.
1. Як отримати цифровий SSL сертифікат для захищеного режиму роботи сайта.
Я не буду писати що таке цифровий SSL сертифікат, бо цієї інформації дуже багато в інтернеті. Скажу тільки, що сертифікат включає в себе ім’я домену, ключ власника, дату видачі та дату закінчення, дані про центр сертифікації який видав цей сертифікат. Якщо сертифікат видається на організацію, то сертифікат включає також дані по організації, також може включати іншу інформацію в залежності від типу сертифікату.
Сертифікати які добре розуміють майже всі браузери зазвичай платні, хоча відомі центри сертифікації поряд з платними пропонують і безкоштовні. Вони мають деякі обмеження, але для невеликих сайтів, яким і є мій сайт цього достатньо.
Найбільш привабливим для отримання сертифікату мені здався центр сертифікації – startssl.com. На їх сайті можна отримати сертифікат строком на 3 роки для свого домену. Достатньо тільки підтвердити що це саме Ваш домен. Все це робиться дуже просто і швидко, для цього достатньо зареєструватися на сайті та виконати прості дії. Це я і зробив, отримавши свій сертифікат. Це файл який має тип “.crt”, і ще декілька службових файлів для встановлення на сервері.
Декілька картинок для розуміння що там дійсно все легко. Підтверджуємо права на домен. Обираємо тип підтвердження “Домен”:
Вводимо ім’я домену:
Обираємо e-mail на який прийде ключ для підтвердження. Зверніть увагу що список адрес обмежений, тому можливо створити потрібний e-mail. Заносимо отриманий код.
Отримаємо результат – домен підтверджено:
Тепер створюємо сертифікат. Переходимо на вкладку підтвердження сертифікатів і обираємо потрібний сертифікат:
Вводимо ім’я домену із списку підверджених:
Завантажуємо програму для створення ключа CSR, генеруємо в ній ключ і вставляємо в наступне поле:
Отримаємо ключі і завантажуємо на свій комп’ютер:
2. Встановити цей сертифікат на сервер або хостинг на якому працює сайт
Якщо Ваш сайт розташований на звичайному хостингу, то Ви це можете зробити через особистий кабінет керування хостингом, або звернутися до хостера, який повинен вирішити це питання.
Якщо сайт розташований на віртуальному або фізичному сервері, як у мене то Ви це можете зробити це зробити через панель керування сервером у розділі SSL сертифікати. Я використовую ISP Manager, там вони знаходяться тут:
Створюємо новий:
Потім доданий сертифікат треба прописати для Вашого домену і вказати що сайт тепер працює через SSL.
3. Змінити роботу самого сайту.
Це головне завдання цієї нотатки, тому зупинимося тут більш детально. Нові версії joomla вже мають у налаштуваннях відмітку про роботу у режимі SSL, і цей режим більш менш працює. В моїй версії цьго немає. Тому робимо так:
Спочатку треба в файлі “.htaccess” додати наступні рядки:
1 2 |
RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] |
Цей файл знаходиться в корні сайта. Його можна відредагувати через ФТП або через панель керування сайтом. Ці рядки означаються що всі HTTP запити сторінок сайта будут автоматично перенапрявлятися на захищені сторінки HTTPS. SSL з’єднання відбувається через порт за замовчування 443 на який ми і направляємо наших відвідувачив.
Після цього сайт почав працювати через SSL, але браузери не показали що з’єднання безпечне, тому що картинки сайту відкривалися через HTTP. Для вирішення цього питання я додав у файл “.htaccess” наступні рядки:
1 2 3 |
RewriteCond %{HTTP_HOST} ^site\.com\.ua [NC] RewriteCond %{HTTP:X-Forwarded-Proto} ^http$ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
Все, браузери прийняли мої сертифікати і показали, що з’єднання з сайтом надійне.
Поставлене завдання я виконав.