Я пытаюсь настроить веб-сервер apache-ubuntu-php. Мой веб-сервер будет содержать несколько сайтов SSL, каждый сайт SSL будет иметь свой собственный IP-адрес (если нет лучшего способа сделать это).
Поэтому я полагаю, что первый шаг - заставить apache распознавать как минимум два разных IP-адреса. Прямо сейчас у меня есть версия веб-сайта в формате SSL и без него: http://mysite.com и https://mysite.com . Хотя оба в настоящее время работают на моем сервере, я не могу заставить оба использовать разные IP-адреса. Прямо сейчас оба используют IP 1.1.1.1. Я купил второй IP-адрес 2.2.2.2, но https://mysite.com не примет его, и Firefox жалуется на ошибку «ssl_error_rx_record_too_long». Вот посмотрите на мои 2 файла vhost
/ И т.д. / apache2 / сайт с поддержкой / 000 по умолчанию
#NameVirtualHost 1.1.1.1:80
#<VirtualHost 1.1.1.1:80>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
/etc/apache2/site-enabled/mysite.com
<VirtualHost 1.1.1.1:80>
ServerAdmin john@mysite.com
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /srv/www/mysite.com/public_html/
ErrorLog /srv/www/mysite.com/logs/error.log
CustomLog /srv/www/mysite.com/logs/access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
#<VirtualHost 2.2.2.2:443>
<VirtualHost *:443>
ServerAdmin john@mysite.com
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /srv/www/mysite.com/public_html/
ErrorLog /srv/www/mysite.com/logs/error.log
CustomLog /srv/www/mysite.com/logs/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/localcerts/www.mysite.com.crt
SSLCertificateKeyFile /etc/ssl/localcerts/www.mysite.com.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
</IfModule>
На mysite.com, если я заменю <VirtualHost *: 443> на <VirtualHost 2.2.2.2:443>, Firefox выдает ошибку «ssl_error_rx_record_too_long».
Поэтому, когда я пытаюсь создать и включить /etc/apache2/site-enabled/mysite2.com с другим сертификатом SSL на третьем IP-адресе, Apache жалуется на проблему «перекрытия».
Может кто-нибудь сказать мне, как настроить мой сервер, чтобы я мог разместить несколько SSL-сайтов в разных доменах? Я хочу, чтобы сертификат SSL работал для IE 7+, FF и Safari в популярных ОС, таких как WinXP, Vista, Win7 и OSX.
Я не могу проверить в настоящее время, так что это просто дикая догадка: файлы обычно читаются в алфавитном порядке. Возможно, вам повезет больше, если вы прочитаете их в обратном порядке, например, переименуйте 000-default в 500-default и используйте 400-myhost. Я не могу вспомнить, где apache любит иметь хост по умолчанию - первый или последний. Но из того, что вы говорите (перекрытия), это может быть последним
источник