Конфигуриране на SSL достъп за сървъра Apache
Ще опишем как да получите и обвържете самоподписан сертификат за сигурност за уеб сървъра Apache. Това ще ни позволи да използваме възможностите на SSL протокола.
Първо инсталирайте OpenSSL и друг необходим софтуер:
sudo инсталирайте 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 сертификата ще бъде нещо подобно:
Име на държава (код от 2 букви) [САЩ]: RU Име на щат или провинция (пълно име) [Някои държави]: Централен район Име на населено място (напр. град) []: Москва Име на организация (напр. компания; препоръчително) []: Foo Bar Solutions Име на организационна единица (напр. раздел) []: Име на сървър за общи услуги (напр. ssl.domain.tld; задължително. ) []: s rv.example.com Имейл адрес []: [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 на SSLCertificateFile/etc/apache2/ssl/apache.pem
Ето пример за минимална конфигурация, например във файла /etc/apache2/apache2.conf или в необходимия файл от директорията /etc/apache2/sites-available/:
NameVirtualHost *:443 NameVirtualHost *:80
Име на сървърsrv.example.com
DocumentRoot /var/www/ ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log комбиниран
Име на сървърsrv.example.com
DocumentRoot /var/www/ ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log комбинирано
SSLEngine на SSLCertificateFile /etc/apache2/ssl/apache.pem
Разбира се, самоподписаните SSL сертификати ще предупредят за тяхната несигурност, но изключението се добавя веднъж.