Конфигуриране на 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 сертификати ще предупредят за тяхната несигурност, но изключението се добавя веднъж.