Настроювання SSL доступу для сервера Apache
Опишемо як отримати та прив'язати самопідписаний сертифікат безпеки для веб-сервера Apache. Це дозволить нам використовувати можливості протоколу SSL.
Для початку встановимо OpenSSL та інше потрібне ПЗ:
sudo install openssl ssl-cert apache2-utils
Крок 1: генеруємо файли сертифікатів.
У цьому прикладі і нижче текст вибрано директорія /etc/apache2/ssl/ для зберігання файлів сертифіката, публічного і приватного ключів. Можна вибрати будь-яку іншу директорію, наприклад /etc/ssl/localcerts/.
sudo openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.key
Діалог введення інформації по SSL сертифікату буде приблизно таким:
Country Name (2 літери коду) [US]: UK State or Province Name (фол. (eg, company; recommended) []: Foo Bar Solutions Organisation Unit Name (eg, section) []: Generic Services server name (eg. ssl.domain.tld; required. ) []: srv .example.com Email Address []: [email protected]
Встановлюємо на файли сертифікатів безпечні права:
sudo chmod 600 /etc/apache2/ssl/apache*
Крок 2: Включимо підтримку SSL для Apache.
Увімкнемо модуль SSL для сервера Apache, можна створити символічне посилання на mods-enabled, а можна так:
sudo a2enmod ssl
Переконайтеся, що у файлі /etc/apache2/ports.conf є такі рядки:
Це потрібно для активації порту безпечного з'єднання.
Крок 3: Конфігурація віртуальних хостів.
Тепер потрібно налаштувати потрібний VirtualHost, для цього слід додати до конфігурації наступні рядки, нижче буде описаний приклад:
SSLEngine on SSLCertificateFile/etc/apache2/ssl/apache.pem
Ось приклад мінімальної конфігурації, наприклад, у файлі /etc/apache2/apache2.conf або в потрібному файлі з директорії /etc/apache2/sites-available/:
NameVirtualHost *:443 NameVirtualHost *:80
ServerNamesrv.example.com
DocumentRoot /var/www/ ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined
ServerNamesrv.example.com
DocumentRoot /var/www/ ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined
SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem
Звичайно, самопідписані сертифікати SSL будуть попереджати про свою небезпеку, але виняток додається один раз.