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

Categories:

Давайте захистимо 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 БЕЗКОШТОВНО» онлайн-інструмент.

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

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

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

  • ключ – це ваш ключовий файл, і його не можна ділитися ніким публічно
  • Сертифікат – справжній сертифікат SSL для вашого домену
  • Ca_bundle – кореневий/проміжний сертифікат підписувача
  •   Як створити календар у Google Таблицях

    Передайте завантажений файл на веб-сервер. Вони нам незабаром знадобляться.

    Конфігурація 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
  • Порада: ви можете створити нову папку під назвою «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.

      Як автоматично запускати ярлики, коли ви відкриваєте програму на iPhone або iPad

    І, як бачите, Chandan.io доступний через https із сертифікатом, який я налаштував.

    Наведені вище кроки є важливими для налаштування сертифіката SSL, і ви повинні додатково налаштувати SSL, щоб посилити та захистити, про що я пояснив тут. Перед запуском ви також можете перевірити свій веб-сервер SSL/TLS, щоб переконатися, що він не піддається типовим уразливостям безпеки.

    Сподіваюся, це дасть вам уявлення про те, як застосувати сертифікат SSL на веб-сервері Apache, щоб URL-адреса була доступна через HTTPS.

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