SSL sitesi Apache ve Ubuntu'da doğru IP'yi kullanmıyor


10

Bir apache-ubuntu-php web sunucusu kurmaya çalışıyorum. Web sunucum birden fazla SSL sitesi barındıracak, her SSL sitesinin kendi IP adresi olacak (bunu yapmanın daha iyi bir yolu yoksa).

Bu yüzden ilk adımın apache'nin en az iki farklı IP adresini tanımasını sağlamak olduğunu düşünüyorum. Şu anda, bir web sitesinin http://mysite.com ve https://mysite.com olan SSL ve SSL olmayan bir sürümüne sahibim . Her ikisi de şu anda sunucumda çalışıyor olsa da, ikisini de farklı IP adresleri kullanamıyorum. Şu anda her ikisi de IP 1.1.1.1 kullanıyor. İkinci bir IP adresi 2.2.2.2 satın aldım ancak https://mysite.com adresi kabul etmiyor ve firefox "ssl_error_rx_record_too_long" hatasıyla şikayet ediyor. İşte 2 vhost dosyama bir bakış

/ Etc / apache2 / site özellikli / 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'da, <VirtualHost *: 443> yerine <VirtualHost 2.2.2.2:443> yazarsam, Firefox "ssl_error_rx_record_too_long" hatasıyla şikayet eder.

Üçüncü bir IP adresinde başka bir SSL sertifikası ile bir /etc/apache2/site-enabled/mysite2.com oluşturmaya ve etkinleştirmeye çalıştığımda Apache bir "çakışma" sorunundan şikayet ediyor.

Birisi bana farklı etki alanlarında birden fazla SSL web sitesi barındırabilmem için sunucumu nasıl kuracağımı söyleyebilir mi? SSL sertifikasının WinXP, Vista, Win7 ve OSX gibi popüler işletim sistemlerinde IE 7+, FF ve Safari için çalışmasını istiyorum.

Yanıtlar:


7

Bunu /etc/apache2/ports.conf dosyasını aşağıdaki gibi ayarlayarak sunucularımda ayarladım:

<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>

Daha sonra /etc/apache2/sites-enabled/mysite.com adresini düzenleyerek kullanabilirsiniz (örneği kısaltmak için bazı kodlar kullanılmaz):

<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>

İstediğiniz kadar hayalet için.

Edit: İKİNCİ BİR GÖRÜŞ İHTİYACINIZ VAR? BURAYA GİT: http://forum.slicehost.com/comments.php?DiscussionID=3244


oh, işe yaradı ... ve web sitelerinin her biri aynı 1.1.1.1 IP adresini kullanıyor. Yani bu artık 2.2.2.2 IP adresine ihtiyacım olmadığı anlamına mı geliyor? Her SSL alanı için benzersiz bir IP'ye ihtiyacım yok mu?
John

Her bir SSL alanı için benzersiz bir IP kullanmanız gerekmez.
Patrick R

Lütfen her alan adı için neden ayrı bir IP'ye ihtiyacınız olmadığını açıklayın. Bu SSL hakkında anladığım her şeye aykırı ...
Josh

Bir IP ile sunucularda birden fazla joker karakter cer kullandığım dışında ne söyleneceğinden emin değilim. CommonName, ServerName ile eşleştiği sürece iyi olacaksınız. Paylaşılan bir barındırma ortamındaysanız, bu başkalarının sertifikanızı kullanmasına izin verebilir. Johnlai2004 ve benim için işe yaradıysa ... Peki o zaman sorun nedir?
Patrick R

voretaq7, serverfault.com/questions/109800/… adresindeki gerekçeyi açıkladı - Bu SSL değil TSL'dir . SSL, IP adresleri ve sertifikalar arasında 1: 1 ilişki gerektirir. TLS yapmaz. TLS'nin HTTPS için kullanılabileceğinin farkında değildim (henüz)
Josh

0

Şu anda kontrol edemiyorum, bu yüzden bu sadece vahşi bir tahmin: Dosyalar genellikle alfabetik sırayla okunur. Ters sırada okuduklarında daha fazla şansınız olabilir, örneğin 000-default'u 500-default olarak yeniden adlandırın ve 400-myhost kullanın. Apache'nin varsayılan ana bilgisayara sahip olmaktan hoşlandığı yeri hatırlayamıyorum - ilk veya son. Ama söylediklerinden (çakışma), son olabilir


Apachectl -t -D DUMP_VHOSTS ile ne kullanacağını görebilirsiniz. Sipariş ilk sürecek.
Richard Salts
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.