Saya mencoba membuat server web apache-ubuntu-php. Server web saya akan meng-host beberapa situs SSL, setiap situs SSL akan memiliki alamat IP sendiri (kecuali ada cara yang lebih baik untuk melakukan ini).
Jadi saya kira langkah pertama adalah membuat apache mengenali setidaknya dua alamat IP yang berbeda. Saat ini, saya memiliki versi situs web SSL dan non-SSL yang http://mysite.com dan https://mysite.com . Meskipun keduanya sedang berjalan di server saya, saya tidak bisa mendapatkan keduanya untuk menggunakan alamat IP yang berbeda. Saat ini, keduanya menggunakan IP 1.1.1.1. Saya membeli alamat IP kedua 2.2.2.2 tetapi https://mysite.com tidak akan menerimanya dan firefox mengeluh dengan kesalahan "ssl_error_rx_record_too_long". Berikut ini adalah 2 file vhost saya
/ etc / apache2 / situs-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>
Di mysite.com, jika saya mengganti <VirtualHost *: 443> dengan <VirtualHost 2.2.2.2:443>, Firefox mengeluh dengan kesalahan "ssl_error_rx_record_too_long".
Jadi ketika saya mencoba membuat dan mengaktifkan /etc/apache2/site-enabled/mysite2.com dengan sertifikat SSL lain pada alamat IP ketiga, Apache mengeluh tentang masalah "tumpang tindih".
Dapatkah seseorang memberi tahu saya cara membangun server saya sehingga saya dapat meng-host beberapa situs web SSL pada domain yang berbeda? Saya ingin sertifikat SSL berfungsi untuk IE 7+, FF, dan Safari pada OS populer seperti WinXP, Vista, Win7 dan OSX.
sumber
Saya tidak dapat memeriksa saat ini, jadi ini hanya tebakan liar: File-file tersebut biasanya dibaca dalam urutan abjad. Anda mungkin lebih beruntung ketika Anda membacanya dengan urutan terbalik, mis. Ganti nama 000-default menjadi 500-default dan gunakan 400-myhost. Saya tidak ingat di mana apache suka memiliki host default - pertama atau terakhir. Tapi dari apa yang Anda katakan (tumpang tindih), itu mungkin yang terakhir
sumber