Понедельник, 25 июля 2016 03:03

HTTPS для RHEL (CentOS)

Оцените материал
(0 голосов)

Кажется, коллекция статей (в левом сайдбаре) на тему о первоначальном конфигурировании web-сервера будет явно неполна, если не рассказать о настройке безопасного соединения HTTPS с использованием SSL-ключа в RHEL (CentOS).

Перехват паролей через Wi-Fi

Как же заставить web-сервер отдавать сайт по HTTPS? Причин заняться этим вопросом немало; даже если у вас нет интернет-магазина, покупатели которого, вполне естественно, хотели бы максимально обезопасить собственные транзакции - не забывайте, что без HTTPS даже при входе в административную панель управления Joomla или WordPress ваши пароли вполне могут быть доступны админу вашей офисной локальной сети, с которым вы не в лучших отношениях, например, и который вынужден подчиняться директиве своего начальства, перехватывая - а вдруг пригодится? - пользовательский трафик (на памяти не один такой случай)... ну или попросту начинающему хакеру среднего школьного возраста, научившемуся гуглить по фразе перехват паролей через Wi-Fi и сидящему за соседним с вами столиком ресторана быстрого питания.

 

Разработка сайтов

 

А между тем, подобного рода опасений легко можно было бы избежать, настроив шифрование (TLS, Transport Layer Security — "безопасность транспортного уровня", следующее поколение криптографического протокола от SSL, Secure Sockets Layer — "уровень защищённых сокетов") на вашем веб-сервере. Не так уж это и сложно, поверьте. И почему это мне пришло в голову рассказать о настройке безопасного соединения HTTPS аккурат сразу после введения в России пресловутого пакета законов, получивших название "антитеррористических"... ладно. У меня, правда, вызывает некоторые сомнения сама по себе техническая возможность предоставления компетентным, хм, товарисчам "ключей используемого шифрования" в контексте сочетания современных реализаций алгоритма Диффи-Хеллмана и временных ключей, используемых сегодня вашим Яндекс-браузером, но... но у каждого ведь свое представление о необходимом и достаточном уровне компетенции. Словом, начнем.

Все очень несложно; нам с вами необходимо установить (если не установлены) парочку пакетов (mod_ssl и openssl), создать приватный ключ, CSR (Certificate signing request, запрос на сертификат) и еще один, самолично вами подписанный (допустим, на один год), ключ:

 

$ sudo yum install mod_ssl openssl
$ sudo openssl genrsa -out ca.key 2048
$ sudo openssl req -new -key ca.key -out ca.csr
$ sudo openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

 

По ходу дела придется ответить на ряд вопросов; один совет. Вы вполне сможете обойтись для начала без пароля для защиты закрытого ключа; кроме того: Country Name — это двухсимвольный код страны согласно ISO-3166 («RU» для России), Common Name - полностью определенное (FQDN) доменное имя; "Email Address", "A challenge password", "An optional company name" - не заполняются. Далее - переносим созданные ключи и серты в их рабочие директории:

 

mv ca.crt /etc/pki/tls/certs
mv ca.key /etc/pki/tls/private/ca.key
mv ca.csr /etc/pki/tls/private/ca.csr

 

Обновляем конфиг Apache SSL, имеющий место быть /etc/httpd/conf.d/ssl.conf , т.е. указываем верные пути для SSLCertificateFile и SSLCertificateKeyFile. И теперь осталось только создать новые VirtualHosts для ваших доменов; ровно те же самые директивы, что и уже созданные ранее для VirtualHosts на 80 порту, например:

 

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
<Directory /var/www/masterpro>
AllowOverride All
</Directory>
DocumentRoot /var/www/masterpro
ServerName masterpro.ws
</VirtualHost>

 

Если ssl-сертификат не самопальный (самоподписанный, self-signed), а полученный в центре сертификации, добавляем еще и путь к корневому сертификату:

 

SSLCertificateChainFile /etc/pki/tls/certs/1_root_bundle.crt

 

Да, не забываем открыть 443 порт и рестартануть апач, предварительно его протестировав:

 

apachectl configtest

 

Удачи!

 

Последнее изменениеСреда, 31 августа 2016 17:56

Оставить комментарий

Добавьте ваш комментарий

Заказать сайт

Веб-разработка. Заказать сайт

Вы можете заказать сайт-визитку, блог, корпоративный сайт, интернет-магазин или коммерческий web-портал.