Руководство администратора Linux по безопасности

       

Apache с mod_ssl


Apache с mod_ssl доступен на

http://www.modssl.org. Я его почти не тестировал.

Создание сертификатов

Это простая часть, следующий шаг должен создать набор ключей и затем конфигурировать httpsd.conf, чтобы использовать их. Найдите, где установлен "openssl" и убедитесь, что он прописан в path, затем cd туда, где лежат файлы настройки Apache. Если нужно создать тестовый сертификат для внутреннего пользвания, скомандуйте:

openssl genrsa -des3 > httpsd.key openssl req -new -x509 -key httpsd.key > httpsd.crt

Браузеры будут громко жаловаться относительно этого сертификата, потому что он создан человеком, который его подписал, и они недоверяют ему. Если Вы хотите генерировать сертификат и запрос удостоверения, чтобы послать кому-то подобно Thawte или Verisign, скомандуйте:

openssl genrsa -des3 > httpsd.key openssl req -new -key httpsd.key > httpsd.csr

Вы можете также получать реальные сертификаты с ограниченным сроком действия (обычно неделя или две) от Verisign, чтобы использовать для тестирования их в среде "реального мира".

Настройка Apache для работы с SSL

Имеется несколько вещей, которые Вы будете должны добавить к Вашему файлу конфигурации Apache, чтобы получить Apache с SSL-расширениями, фактически делающими что-нибудь полезное с Вашими сертификатами. Вы будете должны добавить некоторые глобальные параметры настройки конфигурации (обратите внимание, что они применимы для 1.3.9 и не будут работать в более ранних версиях Apache):

# you will need to tell apache to listen to port 443, by default # it only goes for 80 Listen 443 # if you use more then one secure site on an IP (BAD IDEA) you will need: NameVirtualHost 10.1.1.1:443 #it's a good idea to disable SSL globally and enable it on a per host basis SSLDisable # SSL cache server, without this your server will die SSLCacheServerPath /usr/bin/gcache # port the cache server runs on SSLCacheServerPort 12345 # timeout for the SSL cache, set shorter for testing, 300 is a good # "real world" value SSLSessionCacheTimeout 300

Создайте виртуальный хост с поддержкой SSL:

<VirtualHost www.example.com:443> DocumentRoot /www/secure ServerName www.example.com ServerAdmin example@example.com ErrorLog logs/https_error.log TransferLog logs/https_access.log # enable SSL for this virtual host SSLEnable # this forbids access except when SSL is in use. Very handy for defending # against configuration errors that expose stuff that should be protected SSLRequireSSL SSLCertificateFile /usr/conf/httpsd.crt # if the key is not combined with the certificate, use this # directive to point at the key file. [OPTIONAL] SSLCertificateKeyFile /usr/conf/httpsd.key # If you want to require users to have a certificate you will need # a bundle of root certificates so you can verify their personal certificates #SSLCACertificateFile /etc/ssl/ca-cert-bundle.pem SSLVerifyClient none </VirtualHost>



Содержание раздела