Показаны сообщения с ярлыком apache. Показать все сообщения
Показаны сообщения с ярлыком apache. Показать все сообщения

понедельник, 26 сентября 2011 г.

Apache и предупреждение при рестарте

На свежем debin 6 при рестарте апача получили предупреждение:

Restarting web server: apache2apache2: Could not reliably determine the server's fully qualified domain name, using --ip-- for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using --ip-- for ServerName

Решается довольно просто - в файл /etc/apache2/apache2.conf добавляем строку
ServerName *
или вместо звездочки ваш сервер.

воскресенье, 13 марта 2011 г.

apache и предупреждение "NameVirtualHost ... has no VirtualHosts"

При создании ОТДЕЛЬНЫХ файликов для виртуальных хостов вылезло предупреждение при запуске апача (что-то вроде этого) NameVirtualHost *:80 has no VirtualHosts

А все потому, что в КАЖДОМ файлике было упоминание NameVirtualHost *
Вынес его в etc/apache2/conf.d/virtual.conf
убрал упоминание NameVirtualHost из всех файликов виртуальных хостов и предупреждение пропало.

понедельник, 15 марта 2010 г.

Защита web-каталога паролем.

В каталог кладем файлик .htaccess со следующим содержанием:

AuthType Basic
AuthName "Administrative zone"
AuthUserFile /путь/.htpasswd
Require valid-user


Затем создаем файл паролей
htpasswd -c /путь/.htpasswd имя (запросит пароль)
htpasswd -bc /путь/.htpasswd имя пароль ("пакетный" режим)
флаг -c создает файл, т.е. второго и следующего пользователя уже вносим без него.

Проверяем права. Если с .htpasswd снять чтение группы, то получаем Internal Server Error.
Работает с 440 (r--r-----)

Если надо защитить каталог со скриптами, то тогда в httpd.conf надо добавить

<Location /cgi-bin/каталог>
и далее все что выше, т.е. AuthType Basic и т.д.
</Location>

Затем в скрипте доставать из переменных окружения REMOTE_USER, т.е. $ENV{ 'REMOTE_USER' }
и уже его обрабатывать на предмет прав и т.п.

понедельник, 7 декабря 2009 г.

Настройка Apache и SSL

Почти что все утащено с http://www.freebsdrocks.ru/index.php/guides/application-installs/57-apache-22.html

Пути нужно поменять на свои.

Настроим SSL:
# mkdir /usr/local/etc/apache22/ssl.key
# mkdir /usr/local/etc/apache22/ssl.crt
# chmod 0700 /usr/local/etc/apache22/ssl.key
# chmod 0700 /usr/local/etc/apache22/ssl.crt

Создаем сертификат:
# cd /root
# openssl genrsa -des3 -out server.key 1024
# openssl req -new -key server.key -out server.csr
# openssl x509 -req -days 3650 -in /root/server.csr -signkey /root/server.key -out /root/server.crt

Сертификат будет действителен 3650 дней. Вполне достаточно, чтобы не вспоминать эту процедуру каждый год :-)
Хотите знать больше о SSL Certs, вам сюда: http://httpd.apache.org/docs-2.0/ssl/ssl_faq.html#aboutcerts


Копируем сертификаты:
# cp /root/server.key /usr/local/etc/apache22/ssl.key/
# cp /root/server.crt /usr/local/etc/apache22/ssl.crt/

Установим права:
# chmod 0400 /usr/local/etc/apache22/ssl.key/server.key
# chmod 0400 /usr/local/etc/apache22/ssl.crt/server.crt

Правим конфигурационный файл:

# cd /usr/local/etc/apache22/extra
# ee httpd-ssl.conf

Приводим к виду:

DocumentRoot "/usr/local/www/apache22/data" — смените путь на ваш httpd.conf document root.
ServerName www.example.com:443 - Смените www.example.com на ваше доменное имя (domain name).
ServerAdmin : Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript - Смените на ваш e-mail адрес
ErrorLog /var/log/httpd-error.log — Вы можете расскоментировать эту линию .
TransferLog /var/log/httpd-access.log - Вы можете расскоментировать эту линию .
SSLCertificateFile "/usr/local/etc/apache22/ssl.crt/server.crt"
SSLCertificateKeyFile "/usr/local/etc/apache22/ssl.key/server.key"

Удаляем pass-phrase (опционально):

# cp /usr/local/etc/apache22/ssl.key/server.key /usr/local/etc/apache22/ssl.key/server.key.org
# cd /usr/local/etc/apache22/ssl.key/
# openssl rsa -in server.key.org -out server.key
Enter pass phrase for server.key.org:
writing RSA key
# chmod 400 server.key

Разрешаем HTTPS:

# ee /usr/local/etc/apache22/httpd.conf

Include etc/apache22/extra/httpd-ssl.conf

Перезапускаем APACHE: