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


10

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에서 작동하기를 원합니다.

답변:


7

다음과 같이 /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


오, 그것은 효과가 있었고 ... 각 웹 사이트는 동일한 1.1.1.1 IP 주소를 사용하고 있습니다. 이것은 더 이상 2.2.2.2 IP 주소가 필요하지 않다는 것을 의미합니까? 각 SSL 도메인마다 고유 한 IP가 필요하지 않습니까?
John

각 SSL 도메인에 고유 한 IP를 사용할 필요는 없습니다.
Patrick R

각 도메인마다 별도의 IP가 필요하지 않은 이유를 설명하십시오. 이 ... 내가 SSL에 대한 이해 다에 반하는
조쉬

IP가 하나 인 서버에서 여러 개의 와일드 카드 인증서를 사용했다는 것 외에 다른 말을 잘 모르겠습니다. CommonName이 ServerName과 일치하는 한 괜찮습니다. 이제 공유 호스팅 환경에 있다면 다른 사람들이 귀하의 인증서를 사용할 수 있습니다. 그것이 johnlai2004와 저에게 효과가 있다면 ... 글쎄, 문제는 무엇입니까?
Patrick R

voretaq7은 serverfault.com/questions/109800/ 의 이유를 설명했습니다 .-이것은 SSL이 아닌 TSL입니다. SSL은 IP 주소와 인증서 사이에 1 : 1 관계가 필요합니다. TLS는 그렇지 않습니다. 방금 TLS를 HTTPS에 사용할 수 있다는 것을
Josh

0

현재 확인할 수 없으므로 이것은 단지 추측 일뿐입니다. 파일은 일반적으로 알파벳 순서로 읽습니다. 000-default를 500-default로 이름을 바꾸고 400-myhost를 사용하는 것과 같이 역순으로 읽으면 더 많은 행운을 얻을 수 있습니다. 아파치가 기본 호스트를 갖는 것을 좋아하는 곳을 처음 또는 마지막으로 기억할 수 없습니다. 그러나 당신이 말하는 (중복)에서, 그것은 마지막일지도 모릅니다


apachectl -t -D DUMP_VHOSTS와 함께 사용할 내용을 확인할 수 있습니다. 주문이 처음입니다.
Richard Salts
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.