SSL: несколько сайтов с разными сертификатами на одном ip
В наличии Debian lenny + apache 2.2.9-10+lenny7
Задача: реализовать безопасный доступ к различным сайтам
Устанавливаем:
aptitude install libapache2-mod-gnutls |
Активируем модуль:
a2enmod gnutls |
Создаем ключ и самостоятельно подписанный сертификат:
openssl req -new -x509 -days 1095 -sha1 -newkey rsa: 1024 \ -nodes -keyout mydomain.key -out mydomain.crt \ -subj '/CN=mydomain' |
Перемещаем файлы:
mv mydomain. * / etc / apache2 / ssl / |
Выставляем доступ:
chmod 400 / etc / apache2 / ssl / mydomain.key |
Прописываем некоторые настройки апача в файле ports.conf:
NameVirtualHost * : 80 Listen 80 < IfModule mod_gnutls.c > NameVirtualHost внешний_ip: 443 Listen внешний_ip: 443 # Если необходимо давать доступ по SSL к внутренним сайтам Listen внутренний_ip: 443 </ IfModule > |
Рисуем виртуалхост:
< VirtualHost * : 80 > ServerAdmin admin @ mydomain DocumentRoot / var / www / mydomain DirectoryIndex index.php ServerName mydomain ServerAlias www.mydomain # Админка через SSL Redirect / administrator https: // mydomain / administrator </ VirtualHost > < VirtualHost внешний_ip: 443 > ServerAdmin admin @ mydomain DocumentRoot / var / www / mydomain DirectoryIndex index.php ServerName mydomain ServerAlias www.mydomain # Сертификаты GnuTLSEnable on GnuTLSPriorities NORMAL GnuTLSCertificateFile / etc / apache2 / ssl / mydomain.crt GnuTLSKeyFile / etc / apache2 / ssl / mydomain.key </ VirtualHost > |
Для дополнительных сайтов повторяем процедуру создания ключа и сертификата, а также конфига виртуалхоста.
Например, конфиг внутреннего ресурса на котором находится разнообразная статистика:
< VirtualHost * : 80 > DocumentRoot / var / www / st ServerName st.mydomain.local ServerAlias www.st.mydomain.local Redirect / https: // st.mydomain.local </ VirtualHost > < VirtualHost внутренний_ip: 443 > ServerAdmin admin @ mydomain DocumentRoot / var / www / st ServerName st.mydomain.local ServerAlias www.st.mydomain.local < Directory / var / www / st > AllowOverride None Order Allow,Deny Allow from 192.168.1. #Allow from all # Аунтификация AuthType Basic # Описание при запросе логина и пароля AuthName "Statistics" AuthBasicProvider file AuthUserFile / var / www / st / .htpasswd Require valid-user </ Directory > # Сертификаты GnuTLSEnable on GnuTLSPriorities NORMAL GnuTLSCertificateFile / etc / apache2 / ssl / mydomain.local.crt GnuTLSKeyFile / etc / apache2 / ssl / mydomain.local.key # Eximstats < Directory / var / www / st / eximstats > DirectoryIndex eximstats.html </ Directory > # sqstat < Directory / var / www / st / sqstat > DirectoryIndex sqstat.php </ Directory > # lightsquid < Directory / var / www / st / lightsquid > AddHandler cgi-script .cgi AllowOverride All </ Directory > # vnstat PHP frontend < Directory / var / www / st / vnstat > DirectoryIndex index.php </ Directory > # ntop Redirect / ntop http: // server.mydomain.local: 3000 # ups Redirect / ups http: // server / cgi-bin / apcupsd / multimon.cgi </ VirtualHost > |
Ссылки