IZONE- http://www.izcity.com/- бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

Безопасные ракушки и слои

В статье рассмотрено подключение SSL к Apache, использование SSH и stelnet.

Денис Колисниченко

Устанавливаем SSL

SSL (Secure Sockets Layer) является методом шифрования разработанным Netscape для обеспечения безопасности в Internet. Этот метод поддерживает несколько методов шифрования, и обеспечивает аутентификацию, как на уровне клиента, так и на уровне сервера. SSL работает на транспортном уровне и поэтому обеспечивает надежное шифрование всех типов данных.
Более подробно о реализации SSL можно прочитать на сайте Netscape –
http://home.netscape.com/info/security-doc.html

Протокол S-HTTP является еще одним «безопасным» Internet-протоколом. Он был разработан для предоставления конфиденциальности данных, передаваемых через соединение. Конфиденциальность нужна, например, при передаче номеров кредитных карточек и прочей важной информации.

Модуль mod_ssl реализует в Apache слой SSL, который реализует шифрование всего потока данных между клиентом и сервером. Для всех остальных частей Web-сервера модуль mod_ssl является прозрачным. Для работы в этом режиме, требуется броузер, поддерживающий механизм SSL (этому условию удовлетворяют все современные распространенные броузеры).

Apache можно установить из rpm-пакетов (в случае RedHat-совместимых систем) или устанавливать Web-сервер из исходников. Самая последняя версия (на момент написания этой статьи это 2.0.28beta) всегда доступна http://httpd.apache.org/.

Теперь нужно установить OpenSSL Возможно у вас в системе уже установлен пакет OpenSLL. Для проверки этого введите openssl – если вы увидите в ответ приглашение OpenSSL>, значит OpenSSL уже установлен.

Для установки OpenSSL (если еще не установлен) выполните следующие шаги (перед этим выполните команду su для привилегий суперпользователя):
Распакуйте последнюю версию командой tar zxvf openssl-x.y.z.tar.gz (x.y.z - номер версии).
Перейдите в каталог openssl-x.y.z и выполните команду ./config. Если все нормально (нет ошибок) введите команду make. В противном случае вам, скорее всего, придется установить недостающие пакеты.
Затем нужно ввести команды make install и ldconfig. Перед выполнением команды ldconfig убедитесь, что в файле /etc/ld.so.conf прописан путь к библиотекам OpenSSL (по умолчанию это /usr/local/ssl/lib)

Подключение SSL к Apache

Теперь осталось подключить mod_ssl к Apache. При это следует учитывать, что вам нужна версия mod_ssl, которая совместима с вашей версией Apache. В противном случае mod_ssl будет некорректно работать или вообще откажется работать. Последние цифры в названии модуля указывают на совместимость с определенной версией Apache. Например, для Apache 1.3.14 нужен файл mod_ssl-2.7.1-1.3.14.tar.gz. Здесь 2.7.1 – версия mod_ssl.

Распакуйте модуль tar zxvf mod_ssl-x.y.z-2.0.0.tar.gz и выполните команду

./configure --with-apache=../apache_1.3.14 --with-ssl=../openssl-0.9.5

Я использую OpenSSL 0.9.5

Теперь переходим в каталог с Apache, компилируем его и устанавливаем сертификат

cd ../apache-1.3.14
make
make certificate
make install

Вы установите Apache в каталог, указанный в опции --prefix (по умолчанию /usr/local/apache)

Теперь можно попытаться запустить Apache. Это можно сделать с помощью команды: usr/local/apache/bin/apachectl startssl

Параметр startssl необходим для включения SSL. Apache уже функционирует, однако обратиться по протоколу https вы еще не можете. Для этого вам нужно сконфигурировать виртуальные хосты, которые будут использовать протокол https. О конфигурировании виртуальных хостов более подробно вы можете прочитать в моей статье «Виртуальность»

Для начала нужно указать Apache прослушивать 443-ий порт. Открываем любым редактором файл /etc/httpd/conf/httpd.conf и добавляем эти строки:

Listen 443
NameVirtualHost x.x.x.x:443

Теперь создаем виртуальный сервер, работающий по протоколу https:

<VirtualHost x.x.x.x:443>
# Эти строки нужны для поддержки SSL
SSLEngine on
SSLLogLevel warn
SSLOptions +StdEnvVars
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
SSLLog /usr/local/apache/logs/ssl_engine_log
# -------------------------------------

ServerName www.dhsilabs.com
ServerAdmin webmaster@den.dhsilabs.com
DocumentRoot /var/httpd/www/html
ErrorLog /var/https/www/logs/error.log

</VirtualHost>

После этих строк, естественно, вы можете конфигурировать свой виртуальный хост как обычно.

Теперь нужно перезапустить сервер httpd. При запуске Apache потребует ввести пароль... Мы же не хотим его вводить при каждом запуске? Перейдем в каталог, где находится файл ssl.key и выполним команды:

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
chmod 400 server.key

Почти все готово! Теперь сервер не должен запрашивать пароль и должен работать в нормальном режиме. При обращении https://host.domain броузер должен спросить вас на предмет использования сертификата.

Чтобы Apache по умолчанию стартовал с поддержкой SSL, исправим в файле bin/apachectl условие start на startold, а startssl на просто start

Теперь, находясь в каталоге /usr/local/bin, установим ссылку openssl

ln -s /usr/local/ssl/bin/openssl openssl

 

 

Дальше>>

 

Источник - SoftТерра, http://www.softerra.ru

 


Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com