Налаштування ssl в apache

Налаштування ssl в apache

У даній статті описується настройка TLS в Apache з використанням self-signed сертифіката, що не годиться для public-ресурсів, але цілком підійде для організації роботи з вашим особистим / командним сервером.

При написанні замітки в якості тестової майданчика використовувався сервер під керуванням Debian 6.0 і Apache 2.2.16.

установка OpenSSL

Перш ніж приступати до налаштування SSL-сайту в Apache, необхідно створити ключ шифрування, а також self-signed сертифікат цього ключа. Дані дії виконуються утилітами, які не входять до складу Apache і повинні бути встановлені окремо, якщо їх немає у вашій системі. В Debian / Ubuntu все ставиться однією командою:

# Apt-get install openssl

В інших дистрибутивах назву пакета швидше за все буде таким же.

Генерація закритого ключа і сертифіката

У TLS використовуються асиметричні алгоритми шифрування, тобто для шифрування і розшифровки даних використовується не один ключ, а пара: відкритий і закритий. Відкритий ключ сервера передається клієнту разом з сертифікатом сервера на стадії генерації сеансового ключа.

Створіть каталог, в якому ви маєте намір зберігати закритий ключ і сертифікат сервера:

# Mkdir -p / etc / apache2 / ssl

Тепер можна згенерувати закритий ключ і self-signed сертифікат для нього:

# Openssl req -new -x509 -nodes -out server.crt -keyout server.key

де server.key - ім'я файлу закритого ключа, а server.crt - ім'я файлу сертифікату.

Перед генерацією утиліта запропонує відповісти вам на кілька запитань, щодо даних, якими будуть заповнені поля сертифіката. Оскільки він самоподпісанний, можна не морочитися, а залишити все як є:

Якщо все пройшло успішно і ви не отримали ніяких помилок в результаті перезапуску сервера, саме час перевірити результати роботи. Відкривши в браузері URL вашого сайту, ви повинні побачити попередження про ризик для вашої безпеки в зв'язку з тим, що сайт використовує self-signed сертифікат:

Налаштування ssl в apache

Додавши цей сайт в виключення, ви отримаєте повноцінне TLS-шифрування трафіку, сховавши таким чином від цікавих очей ваші діалоги з HTTP-сервером:

Налаштування ssl в apache

Якщо я не помиляюся, є невелике обмеження. На 1 IP можна буде повісити тільки один сайт. Чи я не правий?

Aleksdem, немає, віртуальних хостів можна створювати більш одного.

Для звичайного віртуального хоста це справедливо, але для секурного. Я одного разу з цим зіткнувся і знайшов, що шифрування йде перш, ніж заявляється ім'я. Хоча я, можливо, і щось не так робив. )

тоді мене врятувало те, що у потрібного сервера було 4 IP

Заради приколу зараз спробував зробити два секурних віртхоста. Все працює.