Як налаштувати Apache HTTP із сертифікатом SSL?

Давайте захистимо Apache за допомогою сертифіката SSL/TLS.

Після впровадження сертифіката налаштований домен/IP буде доступний через HTTPS.

Давайте почнемо.

На високому рівні ми зробимо наступне.

  • Скомпілюйте Apache HTTP 2.4.5 із модулем SSL
  • Отримати SSL сертифікат
  • Налаштуйте Apache для підтримки SSL

Встановіть Apache із SSL із джерела

Щоб налаштувати SSL, Apache HTTP має бути скомпільовано з mod_ssl. Я буду використовувати CentOS 7 VM з Цифровий океан щоб продемонструвати це.

  • Увійдіть на сервер 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, а потім ви повинні інсталювати за допомогою команд make.

make 
make install

Як завжди, переконайтеся, що наведені вище команди не викликають помилок. Це означає, що ви встановили веб-сервер Apache із підтримкою SSL.

  Втрата слуху: наскільки голосно занадто голосно?

Отримання SSL-сертифікату

Є кілька способів створити та отримати сертифікат SSL, підписаний центром сертифікації.

Якщо ви бажаєте запровадити SSL на веб-сервері інтрамережі, тоді більшість організацій мають внутрішню групу видавців сертифікатів, тому вам потрібно звернутися до них. Але вам все одно потрібно створити CSR (запит на підписання сертифіката), і ви можете зробити це за допомогою OpenSSL.

Однак, якщо ви хочете захистити URL-адресу, що виходить в Інтернет, ви можете придбати сертифікат у VeriSign, GoDaddy, Namecheap, ZeroSSLтощо, або отримати БЕЗКОШТОВНИЙ сертифікат від Давайте зашифруємо.

Let’s Encrypt — це спільний проект Linux Foundation, який пропонує БЕЗКОШТОВНИЙ сертифікат SSL/TLS. Я буду використовувати Let’s Encrypt, щоб отримати один сертифікат для свого домену – Chandan.io

Є кілька способів генерувати CSR, але найпростіший, який я знайшов, це використання «SSL БЕЗКОШТОВНО» онлайн-інструмент.

  Як створити календар у Google Таблицях

Введіть URL-адресу, яку потрібно захистити

Підтвердьте право власності на домен одним із наведених способів і завантажте файли сертифікатів домену.

Ви отримаєте три файли, які ми використовуватимемо для налаштування веб-сервера Apache.

  • ключ – це ваш ключовий файл, і його не можна ділитися ніким публічно
  • Сертифікат – справжній сертифікат SSL для вашого домену
  • Ca_bundle – кореневий/проміжний сертифікат підписувача
  • Передайте завантажений файл на веб-сервер. Вони нам незабаром знадобляться.

    Конфігурація 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 для налаштування деталей сертифіката. Для того, щоб переконатися в наявності правильних параметрів, потрібно виконати наступне.

  • SSLCertificateFile – шлях до файлу CRT сертифіката, який ви завантажили раніше
  • SSLCertificateKeyFile – шлях до файлу ключа private.a
  • SSLCertificateChainFile – шлях до файлу ca_bundle.crt
  •   Як автоматично запускати ярлики, коли ви відкриваєте програму на iPhone або iPad

    Порада: ви можете створити нову папку під назвою «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, щоб URL-адреса була доступна через HTTPS.

    Вам сподобалось читати статтю? Як щодо того, щоб поділитися зі світом?