Создание и установка самоподписанного SSL сертификата. Шифруем трафик

Настройка Apache ITK

Установим необходимое ПО:

aptitude install openssl ssl-cert apache2-utils

Создадим директорию для наших ключей:

mkdir /etc/apache2/ssl

Создадим сертификат:

openssl req -new -x509 -days 3650 -nodes -out /etc/apache2/ssl/mycert.pem -keyout /etc/apache2/ssl/mycert.key

req – создание запроса на сертификат
-new – новый запрос
-x509 – создать готовый самоподписанный сертификат (а не только запрос)
-days 3650 – срок действия сертификата, в данном случае он равен приблизительно 10 годам. Но можно указать любой.
-nodes - не устанавливать пароль на закрытый ключ
-keyout - задает местонахождение и название закрытого ключа,
-out - задает местонахождение и название сертификата

Дополнительно можно так же указать шифрование, например:
-rsa:2048
Или указать длину ключа в настройках по умолчанию для всех создаваемых сертификатов, в файле конфигурации /etc/ssl/openssl.cnf

default_bits = 4096

Там же можно указать другие параметры.

Не забудем для безопасности сменить права на созданный ключ и сертификат:

chmod 400 /etc/apache2/ssl/mycert.key

chmod 400 /etc/apache2/ssl/mycert.pem

Активируем модуль поддержки SSL в Apache:

a2enmod ssl

Откроем файл конфигурации /etc/apache2/ports.conf и убедимся что там присутствуют следующие строки активирующие порт 443:

<IfModule mod_ssl.c>
Listen 443
</IfModule>

Далее необходимо будет сконфигурировать виртуальный хост SSL. Для этого правим существующий дефолтный конфигурационный файл уже имеющийся в Apache - default-ssl. Или создаем отдельный конфигурационный файл в директории /etc/apache2/sites-available/, в который необходимо добавить следующие строки:

SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/mycert.key
SSLCertificateFile /etc/apache2/ssl/mycert.pem

Примерно таким образом:

<IfModule mod_ssl.c>
AssignUserID username username
<VirtualHost *:443>
DocumentRoot /var/www
ServerName mysite.com
<Directory "/var/www">
allow from all
Options +Indexes
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error_ssl.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access_ssl.log combined
SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/kyrdoom.key
SSLCertificateFile /etc/apache2/ssl/mycert.pem
ServerAlias www.mysite.com
</VirtualHost>
</IfModule>

Включаем SSL хост :

a2ensite mysite.com

ssl.jpgУстановка phpMyAdmin

Ключевые слова: 

Комментарии

"Для этого правим существующий дефолтный конфигурационный файл уже имеющийся в Apache - default-ssl."

Лучше создавать новые файлы, а дефолтные не трогать во избежании появления ошибок