apache-ubuntu-php 웹 서버를 설정하려고합니다. 내 웹 서버는 여러 SSL 사이트를 호스팅하며 각 SSL 사이트에는 자체 IP 주소가 있습니다 (더 좋은 방법이 없다면).
따라서 첫 번째 단계는 아파치가 적어도 두 개의 다른 IP 주소를 인식하도록하는 것입니다. 현재 http://mysite.com 및 https://mysite.com 인 SSL 및 비 SSL 버전의 웹 사이트가 있습니다 . 둘 다 현재 내 서버에서 실행 중이지만 둘 다 다른 IP 주소를 사용할 수는 없습니다. 지금, 둘 다 IP 1.1.1.1을 사용하고 있습니다. 두 번째 IP 주소 2.2.2.2를 구입했지만 https://mysite.com 은이를 허용하지 않으며 firefox는 “ssl_error_rx_record_too_long”오류를 표시합니다. 여기에 2 개의 호스트 파일이 있습니다.
/ 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 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”오류를 표시합니다.
따라서 세 번째 IP 주소에서 다른 SSL 인증서로 /etc/apache2/site-enabled/mysite2.com을 만들고 활성화하려고하면 Apache가 “중복”문제에 대해 불평합니다.
다른 도메인에서 여러 SSL 웹 사이트를 호스팅 할 수 있도록 서버를 시작하는 방법을 알려줄 수 있습니까? SSL 인증서가 WinXP, Vista, Win7 및 OSX와 같은 인기있는 OS에서 IE 7 이상, FF 및 Safari에서 작동하기를 원합니다.
답변
다음과 같이 /etc/apache2/ports.conf 파일을 조정하여 서버에서 이것을 설정했습니다.
<IfModule mod_ssl.c>
NameVirtualHost *:443
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
NameVirtualHost *:443
Listen 443
</IfModule>
그런 다음 /etc/apache2/sites-enabled/mysite.com을 편집하여 사용할 수 있어야합니다 (일부 코드는 예제를 생략하기 위해 생략 됨).
<VirtualHost *:443>
ServerName mysite1.com
SSLCertificateFile /etc/ssl/localcerts/www.mysite1.com.crt
SSLCertificateKeyFile /etc/ssl/localcerts/www.mysite1.com.pem
</VirtualHost>
<VirtualHost *:443>
ServerName mysite2.com
SSLCertificateFile /etc/ssl/localcerts/www.mysite2.com.crt
SSLCertificateKeyFile /etc/ssl/localcerts/www.mysite2.com.pem
</VirtualHost>
당신이 원하는만큼 많은 vhosts.
편집 : 두 번째 의견이 필요하십니까? 여기로 가십시오 : http://forum.slicehost.com/comments.php?DiscussionID=3244
답변
현재 확인할 수 없으므로 이것은 단지 추측 일뿐입니다. 파일은 일반적으로 알파벳 순서로 읽습니다. 000-default를 500-default로 이름을 바꾸고 400-myhost를 사용하는 것과 같이 역순으로 읽으면 더 많은 행운을 얻을 수 있습니다. 아파치가 기본 호스트를 갖는 것을 좋아하는 곳을 처음 또는 마지막으로 기억할 수 없습니다. 그러나 당신이 말하는 (중복)에서, 그것은 마지막일지도 모릅니다