Уважаемые подскажите где я что не доделал?
Имеется Debian Squeeze + Apache2 + mod_ssl + ...
Всё жило себе и спокойно работало без ssl, но появилась потребность в https, причем не на все виртуальные хосты, а только на некоторые. Все хосты висят на 1 IP. Хостами являются домены 3-го уровня.
Нужно что бы основной домен domain.com был доступен как по http так и по https. А mail.domain.com только через ssl.
Сгенерил 2 сертификата (для host.domain.com и для mail.domain.com).
Пока что я не понимаю как использовать несколько сертификатов. Поэтому подключил только 1 для host.domain.com при этом получил следующее: при заходе на domain.com получаю ssl_error_rx_record_too_long, при этом сайт mail.domain.com отключен!!! т.к. при его подключении apache вообще не стартует с криками Illegal attempt to re-initialise SSL for server (theoretically shouldn't happen!).
Конфиги: [more=apache2.conf]LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy all
</Files>
DefaultType text/plain
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel debug
Include mods-enabled/*.load
Include mods-enabled/*.conf
Include httpd.conf
Include ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
Include conf.d/
Include sites-enabled/[/more] [more=ports.conf]NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
NameVirtualHost *:443
Listen 443
SSLEngine on
SSLOptions +StrictRequire
SSLProtocol -all +TLSv1 +SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
SSLMutex file:/var/log/apache2/ssl_mutex
SSLRandomSeed startup file:/dev/urandom 1024
SSLRandomSeed connect file:/dev/urandom 1024
SSLCertificateFile /etc/apache2/ssl.d/host.domain.com.crt
SSLCertificateKeyFile /etc/apache2/ssl.d/host.domain.com.key
SSLSessionCache shm:/var/log/apache2/ssl_cache_shm
SSLSessionCacheTimeout 600
SSLPassPhraseDialog builtin
SSLVerifyClient none
SSLProxyEngine off
<IfModule mime.c>
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
</IfModule>
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
NameVirtualHost *:443
</IfModule>
[/more] [more=default-ssl]<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@domain.com
ServerName host.domain.com:443
ServerAlias
www.domain.com ServerAlias domain.com
. . . <FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>[/more] [more=mail.domain.com]<VirtualHost *:80>
ServerAdmin webmaster@domain.com
ServerName mail.domain.com:80
. . . </VirtualHost>[/more]
(Многоточием заменена структура директорий сайтов. Она врядли нам понадобится...)
Кстати, без определения в ServerName порта ругался на то, что сертификат выдан не на тот домен.