Забезпечимо наш веб-сервер Apache за допомогою SSL/TLS сертифіката.
Після встановлення сертифіката, ваш домен або IP-адреса будуть доступні через безпечне з’єднання HTTPS.
Приступимо до налаштування.
Основні кроки, які ми виконаємо:
- Збірка Apache HTTP 2.4.5 з підтримкою модуля SSL
- Отримання SSL сертифіката
- Налаштування Apache для використання SSL
Встановлення Apache з підтримкою SSL з вихідних кодів
Для того, щоб використовувати SSL, Apache HTTP має бути скомпільований з модулем mod_ssl. Для демонстрації я використаю віртуальну машину CentOS 7, розміщену на Digital Ocean.
- Увійдіть на ваш Linux сервер з правами root та завантажте останню версію Apache.
wget http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz .
Примітка: Актуальну версію ви можете знайти тут.
- Розпакуйте за допомогою команди gunzip.
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
- У вас з’явиться нова папка “httpd-2.4.25”.
- Перейдіть в середину папки та виконайте команду configure.
./configure --enable-ssl –-enable-so
Примітка: Якщо це новий сервер, ви можете зіткнутися з проблемами, пов’язаними з APR, PCRE, OpenSSL. В такому випадку, зверніться до інструкції з усунення несправностей.
Переконайтесь, що команда configure не повертає помилок, після чого інсталюйте Apache за допомогою make:
make make install
Знову ж таки, переконайтесь, що команди не повертають помилок. Якщо все гаразд, ви успішно встановили веб-сервер Apache з підтримкою SSL.
Отримання SSL сертифіката
Існує декілька способів отримати SSL сертифікат, підписаний центром сертифікації.
Якщо ви плануєте використовувати SSL для веб-сервера внутрішньої мережі, то більшість організацій мають внутрішні відділи, які видають сертифікати. Зверніться до них. Однак вам все одно необхідно створити CSR (запит на підписання сертифіката), що можна зробити за допомогою OpenSSL.
Для захисту веб-сайту, доступного з Інтернету, ви можете придбати сертифікат в VeriSign, GoDaddy, Namecheap, ZeroSSL, або ж отримати БЕЗКОШТОВНИЙ сертифікат від Let’s Encrypt.
Let’s Encrypt — це спільний проект Linux Foundation, що пропонує БЕЗКОШТОВНІ SSL/TLS сертифікати. Я скористаюсь Let’s Encrypt, щоб отримати сертифікат для свого домену – Chandan.io
Є декілька способів згенерувати CSR, але найпростіший, який я знайшов, це використання онлайн інструменту “SSL For FREE“.
Введіть URL-адресу, яку потрібно захистити.
Підтвердіть права власності на домен, використовуючи один з запропонованих методів, та завантажте файли сертифікатів.
Ви отримаєте три файли, які знадобляться нам для налаштування веб-сервера Apache:
Перенесіть ці завантажені файли на веб-сервер, вони знадобляться нам найближчим часом.
Налаштування Apache SSL
Останнім кроком буде налаштування Apache для обробки запитів через HTTPS.
- Увійдіть на веб-сервер Apache.
- Зробіть резервну копію файлу httpd.conf (за замовчуванням знаходиться за шляхом /usr/local/apache2/conf/).
- Відкрийте файл за допомогою редактора vi та переконайтесь, що модулі mod_ssl і httpd-ssl.conf існують та не закоментовані.
LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf
Ми будемо використовувати файл httpd-ssl.conf для налаштування параметрів сертифіката. Переконайтеся, що налаштування містять наступні параметри:
Порада: Створіть нову папку, наприклад “ssl”, та зберігайте усі файли, пов’язані із сертифікатами, в ній.
- Зробіть резервну копію, якщо потрібно, та скористайтеся редактором vi для зміни файлу.
SSLCertificateFile "/usr/local/apache2/conf/ssl/certificate.crt" SSLCertificateChainFile "/usr/local/apache2/conf/ssl/ca_bundle.crt" SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/private.key"
Далі, потрібно налаштувати директиву “ServerName”. Зазвичай це ім’я вашого домену або URL.
ServerName chandan.io
- Збережіть файл та перезапустіть веб-сервер Apache.
cd /usr/local/apache2/bin ./apachectl stop ./apachectl start
І нарешті, переконайтеся, що ваш домен зіставлений із IP-адресою веб-сервера. Після цього спробуйте зайти на ваш домен через HTTPS.
Як бачите, Chandan.io доступний через HTTPS, використовуючи налаштований сертифікат.
Вищезазначені кроки необхідні для налаштування SSL сертифіката. Для посилення захисту можна використовувати додаткові налаштування SSL, про які я згадував тут. Також, перед запуском перевірте SSL/TLS на вашому веб-сервері, щоб переконатися, що він захищений від типових вразливостей.
Сподіваюся, ця стаття допомогла вам зрозуміти, як застосувати SSL сертифікат на веб-сервері Apache, щоб ваш веб-сайт був доступний через HTTPS.
Чи була стаття корисною? Поділіться нею з друзями!