Apache 및 Ubuntu에서 올바른 IP를 사용하지 않는 SSL 사이트

apache-ubuntu-php 웹 서버를 설정하려고합니다. 내 웹 서버는 여러 SSL 사이트를 호스팅하며 각 SSL 사이트에는 자체 IP 주소가 있습니다 (더 좋은 방법이 없다면).

따라서 첫 번째 단계는 아파치가 적어도 두 개의 다른 IP 주소를 인식하도록하는 것입니다. 현재 http://mysite.comhttps://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를 사용하는 것과 같이 역순으로 읽으면 더 많은 행운을 얻을 수 있습니다. 아파치가 기본 호스트를 갖는 것을 좋아하는 곳을 처음 또는 마지막으로 기억할 수 없습니다. 그러나 당신이 말하는 (중복)에서, 그것은 마지막일지도 모릅니다


답변