Próbuję skonfigurować serwer WWW Apache-Ubuntu-php. Mój serwer będzie obsługiwał wiele witryn SSL, każda witryna SSL będzie miała swój własny adres IP (chyba że istnieje lepszy sposób).
Przypuszczam, że pierwszym krokiem jest sprawienie, by apache rozpoznał co najmniej dwa różne adresy IP. W tej chwili mam wersję strony internetowej w wersji SSL i innej niż SSL, czyli http://mysite.com i https://mysite.com . Chociaż oba są obecnie uruchomione na moim serwerze, nie mogę zmusić obu do używania różnych adresów IP. Obecnie obaj korzystają z adresu IP 1.1.1.1. Kupiłem drugi adres IP 2.2.2.2, ale https://mysite.com nie zaakceptuje go, a firefox narzeka na błąd „ssl_error_rx_record_too_long”. Oto moje 2 pliki vhost
/ etc / apache2 / site-enabled / 000-default
#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 [email protected]
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 [email protected]
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>
W mysite.com, jeśli zamienię <VirtualHost *: 443> na <VirtualHost 2.2.2.2:443>, Firefox narzeka na błąd „ssl_error_rx_record_too_long”.
Kiedy więc próbuję utworzyć i włączyć /etc/apache2/site-enabled/mysite2.com z innym certyfikatem SSL na trzecim adresie IP, Apache skarży się na problem „nakładania się”.
Czy ktoś może mi powiedzieć, jak wstać z mojego serwera, abym mógł hostować wiele witryn SSL w różnych domenach? Chcę, aby certyfikat SSL działał dla IE 7+, FF i Safari w popularnym systemie operacyjnym, takim jak WinXP, Vista, Win7 i OSX.
Obecnie nie mogę sprawdzić, więc to tylko zgadywanka: pliki są zwykle odczytywane w kolejności alfabetycznej. Możesz mieć więcej szczęścia, gdy będziesz czytać je w odwrotnej kolejności, np. Zmień nazwę 000-default na 500-default i użyj 400-myhost. Nie pamiętam, gdzie apache lubi mieć domyślnego hosta - pierwszy lub ostatni. Ale z tego, co mówisz (pokrywają się), może to być ostatni
źródło