Apache
Веб-сервер Apache - HTTP-сервер с открытыми исходными кодами, предназначенный
для использования в современных ОС, таких как UNIX, MS Windows, Mac OS/X и
Netware. Цель его разработчиков - создать безопасный, эффективный и
расширяемый сервер, который предоставляет доступ по протоколу HTTP в
соответствии с актуальными стандартами. Apache является наиболее популярным
веб-сервером в Интернет, начиная с апреля 1996 года.
Основными достоинствами Apache считаются надёжность и гибкость конфигурации.
Он позволяет подключать внешние модули для предоставления данных, использовать
СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и
т. д. Поддерживает IPv6.
Поддержка ГОСТ в Apache
Для работы с ГОСТ требуется применение патча (комплекта исправлений исходного
кода) и перекомпиляция приложения с библиотекой openssl, подерживающей ГОСТ.
Мы представляем следующие патчи:
Инструкции по использованию предлагаемых патчей:
Примечания
При использовании OpenSSL 0.9.8 с нашим ГОСТ один виртуальный сервер
может использовать либо только ГОСТ Р 34.10-94, либо только ГОСТ Р
34.10-2001, но не одновременно.
Параллельно c ключами ГОСТ можно для того же
виртуального сервера указать ключи и сертификаты RSA, что обеспечит
доступность данного сервера для клиентов, не поддерживающих российскую
криптографию. Необходимо также явным образом запретить все ciphersuites,
использующие DSA и явно разрешить ciphersuites с ГОСТ.
При использовании OpenSSL 1.0.0 можно одновременно использовать ключи DSA,
RSA и ГОСТ.
Сборка Apache 2.2 с openssl 0.9.8 с поддержкой ГОСТ
Сборка и установка apache2 (использовалась версия 2.2.16)
Скомпилировать openssl 0.9.8 в каталоге cp_src/openssl-0.9.8e по
нашей инструкции.
Перейти в рабочий каталог:
cd cp_src
Загрузить исходный
код apache:
wget http://www.eu.apache.org/dist/httpd/httpd-2.2.16.tar.gz
Распаковать исходный код Apache:
tar zxvf httpd-2.2.16.tar.gz
Загрузить патч для
Apache командой:
wget http://cryptocom.ru/opensource/apache2.2.diff.gz
Распаковать патч:
gunzip apache2.2.diff.gz
cp apache2.2.diff httpd-2.2.16
cd httpd-2.2.16
Применить патч:
patch -p1 < apache2.2.diff
Сконфигурировать Apache, указывая, что сборка должна осуществляться
с поддержкой ssl, а библиотека OpenSSL установлена в /opt/openssl:
./configure --enable-ssl --with-ssl=/opt/openssl --prefix=/opt/httpd
Собрать и установить Apache:
make
sudo make install
Редактирование конфигурационных файлов Apache
В файле httpd.conf раскомментировать блок
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf
В файле conf/extra/httpd-ssl.conf добавить:
в SSL Global Context
##
## SSL Global Context
##
## All SSL configuration in this context applies both to
## the main server and all SSL-enabled virtual hosts.
##
SSLCryptoDevice gost
в секции настройки виртуального хоста указать шифрсьют:
SSLCipherSuite HIGH:MEDIUM:+GOST2001-GOST89
в этой же секции указать сертификат сервера и закрытый ключ:
SSLCertificateFile "/opt/httpd/conf/apache.gost.ru.crt"
SSLCertificateKeyFile "/opt/httpd/conf/apache.gost.ru.key"
Следует учитывать, что на рабочем сервере потребуется добавить еще
ряд параметров (например, указать сертификат СА и пр.), однако уже с
указанными настройками сервер будет принимать соединения, защищенные
российскими криптоалгоритмами.
После установки следует отредактировать файл /etc/ld.so.conf путем
добавления пути /opt/openssl/lib для поиска библиотек libssl.so.0.9.8 и
libcrypto.so.0.9.8, с которыми линкуется httpd на этапе сборки.
Инструкция по подключению алгоритмов ГОСТ к веб-серверу
Apache с OpenSSL 1.0.0 (несертифицированное решение)
Сборка Apache 2.2 с openssl 1.0.0 с поддержкой ГОСТ
Скомпилировать openssl 1.0.0 в каталоге /gost-ssl по
нашей инструкции.
Сборка Apache2 (использовалась версия 2.2.16)
Загрузить исходный
код apache:
wget http://www.eu.apache.org/dist/httpd/httpd-2.2.16.tar.gz
Распаковать исходный код Apache:
tar zxvf httpd-2.2.16.tar.gz
Загрузить патч для
Apache командой:
wget http://cryptocom.ru/opensource/apache-2.2.6-openssl-1.0.0.diff.gz
Распаковать патч:
gunzip apache-2.2.6-openssl-1.0.0.diff.gz
Применить патч:
mv apache-2.2.6-openssl-1.0.0.diff httpd-2.2.16
patch -p1 < apache-2.2.6-openssl-1.0.0.diff
Сконфигурировать Apache:
/configure --enable-ssl --with-ssl=/gost-ssl--prefix=/opt/httpd
- Собрать и установить Apache:
make
sudo make install
После установки следует отредактировать файл /etc/ld.so.conf путем
добавления пути /gost-ssl/lib для поиска библиотек libssl.so.1.0.0 и
libcrypto.so.1.0.0, с которыми линкуется httpd на этапе сборки.
|
|