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















>














Ссылки


  1. SSL-enabled Name-based Apache Virtual Hosts with mod_gnutls

  2. Apache 1.3 + mod_ssl

Похожие статьи:

Оставить комментарий