Apache + mod_ssl на CentOS
Предварительно установим Apache
yum install httpd
Затем нужно запустить Apache в качестве сервиса CentOS, чтобы автоматизировать запуск Apache после перезагрузки:
systemctl enable httpd.service
# запускаем apache
service httpd restart
Чтобы создать самоподписанный сертификат, для начала нужно установить mod_ssl, модуль Apache для поддержки шифрования SSL
yum install mod_ssl
После установки модуль включится автоматически, после чего Apache сможет использовать сертификаты SSL. Осталось только перезапустить Apache, чтобы mod_ssl был готов к использованию.
service httpd restart
Теперь веб-сервер подготовлен к шифрованию данных. Приступайте к созданию нового SSL-сертификата. Сертификат будет содержать некоторую базовую информацию о сайте; также к нему прилагается key-файл, благодаря которому сервер может обрабатывать зашифрованные данные.
Сначала нужно создать новый каталог, в котором будет храниться ключ сервера (key-файл) и сам сертификат:
mkdir /etc/httpd/ssl
При помощи команды openssl создайте ключ и сертификат SSL:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
После ввода запроса будет открыта командная строка, в которой можно ввести информацию о сайте.
Итак, все необходимые компоненты готовы. Теперь нужно настроить виртуальный хост для отображения нового сертификата.
Откройте конфигурационный файл Apache для SSL в текстовом редакторе с привилегиями root:
nano /etc/httpd/conf.d/ssl.conf
Найдите раздел, который начинается с
Сначала раскомментируйте строку DocumentRoot и отредактируйте адрес в кавычках, указав свой каталог document root. По умолчанию это /var/www/html; если вы используете другой root-каталог веб-сервера, укажите в этой строке правильный адрес.
DocumentRoot "/var/www/example.com/public_html"
Затем раскомментируйте строку ServerName (вместо www.example.com укажите свое доменное имя или IP, в зависимости от того, что было указано в поле Common Name).
ServerName www.example.com:443
Найдите строки SSLCertificateFile и SSLCertificateKeyFile и укажите в них адрес ключа и сертификата – каталог /etc/httpd/ssl:
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key
Внеся все изменения, сохраните и закройте файл.
На данный момент SSL-сертификат и веб-сервер готовы. Чтобы применить все изменения и запустить шифрование SSL, перезапустите сервер Apache, это обновит его конфигурации:
apachectl restart
Чтобы увидеть новый сертификат в действии, посетите в браузере доменное имя или IP в таком формате:
https://yourSiteName.com/
Скорее всего, браузер выдаст предупреждение вроде «site’s security certificate is not trusted». Это значит, что браузер не может доверять сертификату, который не был заверен авторитетным центром сертификации. Это вполне ожидаемая реакция.
Чтобы продолжить, нужно добавить исключение в проверку подлинности браузера.
Заключение
Теперь сервер Apache поддерживает запросы HTTP и HTTPS. Это обезопасит взаимодействие с клиентами и не позволит посторонним читать ваш трафик.