Debian LAMP: Apache2 и SSL

OS: Debian GNU/Linux 4.0 r3 Etch
Настройка Apache2 и SSL

Предварительно установленные и настроенные пакеты:
# dpkg -l | grep ii | grep apache
ii apache2 2.2.3-4+etch5 Next generation, scalable, extendable web se
ii apache2-mpm-prefork 2.2.3-4+etch5 Traditional model for Apache HTTPD 2.1
ii apache2-utils 2.2.3-4+etch5 utility programs for webservers
ii apache2.2-common 2.2.3-4+etch5 Next generation, scalable, extendable web se
ii libapache2-mod-perl2 2.0.2-2.4 Integration of perl with the Apache2 web ser
ii libapache2-mod-php5 5.2.0-8+etch11 server-side, HTML-embedded scripting languag

Установим поддержку SSL для Apache2 и на всякий случай документацию к Apache:
#aptitude search openssl
p openssl - Secure Socket Layer (SSL) binary and related cryptographic tools
#aptitude install apache2-doc openssl

Так же нам понадобиться команда make-ssl-cert, которая входит в пакет ssl-cert: этот пакет позволяет автоматически устанавливать ПО, которому требуется создание сертификатов ssl. Проще говоря, это только обёртка вокруг openssl req, которой передаются нужные пользовательские переменные.

#aptitude search ssl-cert
p ssl-cert - Simple debconf wrapper for openssl
#aptitude install ssl-cert

# mkdir /etc/apache2/keys
создаем сертификат, предварительно узнаем полное имя сервера, правильно прописанного в DNS
# hostname -f -получить полное имя вашего сервера
при создании сертификата его нужно ввести в поле "commonName", чтобы избежать в дальнейшем ошибки:" RSA server certificate CommonName (CN) does NOT match server name!?"
# make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/keys/apachekey.pem

копируем настройки для будущего хоста:
#cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl.default

#ee /etc/apache2/sites-available/default

меняем первые две строки на:

NameVirtualHost *:80

Теперь к нему доступ будет происходить только по 80-му порту.

#ee /etc/apache2/sites-available/ssl.default

NameVirtualHost *:443


DocumentRoot …
SSLEngine on
SSLCertificateFile /etc/apache2/keys/apachekey.pem

Меняем порт 80 на порт SSL 443.

#a2enmod ssl — включаем SSL модуль
#a2ensite ssl.default — включаем хост

#/etc/init.d/apache2 reload — перезагружаем апач.

Примечания:
  • Нельзя делать 2 Web-домена с поддержкой ssl на одном IP, в логе apache постоянно будет ошибка " Init: You should not use name-based virtual hosts in conjunction with SSL!!". 1- решение вешать второй домен на другой порт - не на 443. 2 -решение IP-алиасинг ;

Комментарии

Популярные сообщения из этого блога

Базовая настройка маршрутизатора Cisco.

Двигатель базы данных "SQLite"

update-rc.d SysV init scripts (/etc/init.d): автозагрузка программ в Debian, Ubuntu.