Ich versuche, einen Apache-Ubuntu-PHP-Webserver einzurichten. Mein Webserver hostet mehrere SSL-Sites. Jede SSL-Site hat ihre eigene IP-Adresse (es sei denn, es gibt einen besseren Weg, dies zu tun).
Ich nehme an, der erste Schritt besteht darin, Apache dazu zu bringen, mindestens zwei verschiedene IP-Adressen zu erkennen. Im Moment habe ich eine SSL- und eine Nicht-SSL-Version einer Website, die http://mysite.com und https://mysite.com lautet . Obwohl beide derzeit auf meinem Server ausgeführt werden, kann ich nicht beide dazu bringen, unterschiedliche IP-Adressen zu verwenden. Derzeit verwenden beide die IP 1.1.1.1. Ich habe eine zweite IP-Adresse 2.2.2.2 gekauft, aber https://mysite.com akzeptiert sie nicht und Firefox beschwert sich mit dem Fehler "ssl_error_rx_record_too_long". Hier ist ein Blick auf meine 2 vhost-Dateien
/ 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>
Wenn ich auf mysite.com <VirtualHost *: 443> durch <VirtualHost 2.2.2.2:443> ersetze, beschwert sich Firefox mit dem Fehler "ssl_error_rx_record_too_long".
Wenn ich also versuche, ein /etc/apache2/site-enabled/mysite2.com mit einem anderen SSL-Zertifikat auf einer dritten IP-Adresse zu erstellen und zu aktivieren, beschwert sich Apache über ein "Überlappungs" -Problem.
Kann mir jemand sagen, wie ich meinen Server aufrichte, damit ich mehrere SSL-Websites auf verschiedenen Domänen hosten kann? Ich möchte, dass das SSL-Zertifikat für IE 7+, FF und Safari unter den gängigen Betriebssystemen wie WinXP, Vista, Win7 und OSX funktioniert.
quelle
Ich kann derzeit nicht überprüfen, daher ist dies nur eine wilde Vermutung: Die Dateien werden normalerweise in alphabetischer Reihenfolge gelesen. Möglicherweise haben Sie mehr Glück, wenn Sie sie in umgekehrter Reihenfolge lesen lassen, z. B. 000-default in 500-default umbenennen und 400-myhost verwenden. Ich kann mich nicht erinnern, wo Apache gerne den Standardhost hat - zuerst oder zuletzt. Aber von dem, was Sie sagen (Überlappung), könnte es das letzte sein
quelle