06 December 2024
Хочемо ми того чи ні, але перехід на https неминучий. Активно стимулює власників до переходу на безпечну версію http Google: як мінімум, в адресному рядку Chrome (та вже й інших браузерів) буде відмітка про те, що з'єднання не захищене, як максимум, пошукові результати з сайту не будуть з'являтися в так званих rich snippets, що досить погано для Інтернет-магазинів.
При купівлі звичайного хостингу всі операції з SSL-сертифікатом здійснюються, як правило, за допомогою панелі управління, що надається хостером, - все досить просто. Коли ж ми маємо власний віртуальний сервер, налаштовувати все доведеться вручну.
Насамперед потрібно замовити сертифікат. Зробити це можна або в панелі керування віртуальним сервером або купити його в будь-якому іншому місці. За запитом "SSL сертифікат купити" отримайте багато різних варіантів.
В результаті замовлення сертифіката вам будуть надані два файли – SSL-файл сертифіката (розширення pem) та ключовий файл (розширення key). Обидва ці файли слід помістити в каталог /etc/ssl.
Перейдіть до каталогу /etc/apache2/sites-available. У ньому зберігаються файли конфігурації сайтів, що працюють на вашому веб-сервері.
Відкрийте файл, який містить конфігурацію сайту, для якого ви купили сертифікат. Далі уявімо, що наш сайт називається example.com. Конфігурація для нього буде наступною:
ServerName example.com Redirect permanent / https://example.com/ ServerAdmin admin@example.com ServerName example.com ServerAlias www.example.com xxx.xxx.xxx.xxx DocumentRoot /srv/www/example.com/htdocs ErrorLog /srv/www/example.com/logs/error_log CustomLog /srv/www/example.com/logs/access_log combined env=!loopback SSLEngine on SSLCertificate /etc/ssl/firma.pem SSLCertificateKeyFile /etc/ssl/server.key
Розберемося, що й до чого. Спочатку ми створюємо віртуальний хост для порту 80, який працюватиме як перенаправлення – на https-версію сайту. Можна було б зробити це і через .htaccess, але оскільки ми маємо доступ до конфігу сервера, то можна зробити це прямо тут.
Далі ми описуємо віртуальний хост для порту 443 (використовується SSL). Налаштування такі самі, як і для звичайної версії сайту (ServerName, DocumentRoot і т.д.). Відмінність полягає лише у наявності трьох SSL-директив. Перша включає SSL, друга задає PEM-файл, третя – KEY-файл.
Після цього потрібно зберегти файл конфігурації та перезапустити Apache:
sudo systemctl restart apache2.service
або (залежно від вашого дистрибутива)
sudo service apache2 restart
Зверніться до вашого сайту. Якщо замість напису На захищено з'явилося зображення зеленого замку, то все добре і налаштування можна вважати завершеним.
Іноді замок відображається не зеленим, а сірим і не закритим, а відкритим. Це означає, що не всі сайти завантажуються за протоколом https. Відкрийте вихідний код сторінки і зробіть пошук за рядком "https://" (без лапок). Ваше завдання – знайти адреси ресурсів (JS, CSS, картинок), які завантажуються за протоколом http. Виправте URL-адресу проблемних ресурсів на https:// і знову оновіть сторінку сайту. Якщо ви все зробите правильно, побачите зелений замок з'єднання.