ฉันพยายามตั้งค่าเว็บเซิร์ฟเวอร์ apache-ubuntu-php เว็บเซิร์ฟเวอร์ของฉันจะโฮสต์เว็บไซต์ SSL หลายแห่งแต่ละไซต์ SSL จะมีที่อยู่ IP ของตัวเอง (เว้นแต่จะมีวิธีที่ดีกว่าในการทำเช่นนี้)
ดังนั้นฉันคิดว่าขั้นตอนแรกคือการรับ apache ที่จะรับรู้อย่างน้อยสองที่อยู่ IP ที่แตกต่างกัน ตอนนี้ผมมี SSL และไม่ใช่ 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 ของฉัน
/ etc / 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