Hostname ile SSL Apache Proxy çalışmıyor


1

Apache üzerinden güvenli bir web proxy çalıştırmaya karar verdik. sunucuya bir etki alanı adı verdik ve sonra bu etki alanı için SSL sertifikası aldık ve sonra Apache / 2.2.22 ile Ubuntu 12.04 (kesin) olarak uyguladık.

Sunucuyu çalıştırdığımda varsayılan site (HTTP) yani sanalhost olarak sadece IP ile proxy düzgün çalıştı.

Sonra bu proxy sunucusu için SSL yapmaya karar verdim, IP adresi için SSL'ye izin verilmediğinden bir etki alanı seçtik ve bu nedenle devam ettik.

Ayrıca mod_rewrite özelliğini etkinleştirdim, böylece tüm HTTP istekleri SSL web sitesinden geçer

Sırasıyla HTTP sanal ana makinem ve SSL sanal ana bilgisayar yapılandırmam,

<VirtualHost 12.12.12.12:80>
    ServerAdmin webmaster@localhost
    ServerName example.net
    ServerAlias www.example.net
    ProxyRequests On
    ProxyVia On
    <Proxy *>
    Order allow,deny
    Deny from all
    Allow from 104.12
    </Proxy>
    RewriteEngine   on
    RewriteCond     %{SERVER_PORT} ^80$
    RewriteRule     ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
    DocumentRoot /var/www
    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel debug

    CustomLog ${APACHE_LOG_DIR}/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>

SSL yapılandırması

    <IfModule mod_ssl.c>
     <VirtualHost  12.12.12.12:443>
        ServerAdmin webmaster@localhost
        ServerName example.net
        ServerAlias www.example.net
        ProxyVia On
        ProxyPass / https://127.0.0.1:443/
        ProxyPreserveHost On
        SSLProxyCheckPeerCN off
        #ProxyPreserveHost on
        ProxyRequests On
        SSLEngine on
        SSLProxyEngine On
        SSLCertificateFile    /etc/ssl/ssl_proxy/example_net.crt
        SSLCertificateKeyFile /etc/ssl/ssl_proxy/example.net.key
        SSLProxyVerify require
        SSLProxyVerifyDepth 10
        SSLProxyMachineCertificateFile /etc/ssl/ssl_proxy/example.net.csr
        SSLProxyCACertificateFile /etc/ssl/ssl_proxy/example_net.ca-bundle
        SSLStrictSNIVHostCheck on
        DocumentRoot /var/www
        Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
        <Proxy *>
        Order allow,deny
        Deny from all
        Allow from 104.12
        </Proxy>
        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/ssl_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>
       <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory> 
        BrowserMatch "MSIE [2-6]" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
        # MSIE 7 and newer should be able to use keepalive
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>

Yukarıdaki tüm olasılık seçeneklerini denedim, ancak hiçbiri işe yaramadı. Bu yüzden ne zaman bir web sitesine girdiğimde hata alıyorum

Hostname example.net provided via SNI and hostname yahoo.com provided via HTTP are different.

Neyi yanlış yapıyorum hakkında fikrin var mı?

Teşekkür ederim Sai


1
Example.net ve yahoo.com gerçek isimleri midir? Tam bir hata mesajı almanıza yardımcı olacaktır.
harrymc

evet, example.net, benim ana bilgisayar adımdır (örnek orijinal ad değildir, ancak herkese açık bir kurulumdur) ve example.net'te https etkinleştirerek example.net aracılığıyla yahoo'ya bağlanmaya çalıştım. Umarım temizimdir
Saikrishna

Lütfen kullandığınız URL'yi ve mod_rewrite kurallarını ve ne yapmaya çalıştığınızla ilgili daha fazla bilgi de ekleyin. Sanki yahoo'ya bir HTTPS geçişi ayarlıyorsunuz ve iki sertifika karışık gibi görünüyor.
harrymc

Lütfen hem HTTP hem de HTTPS kongre yapılandırmalarını kontrol edin. Ancak gerçek URL adresime ihtiyacınız var mı? Yapmaya çalıştığım şey, HTTPS ile yalnızca html sayfaları değil, aynı zamanda müzik ve videolar gibi Web'deki bir şeye erişmem gereken bir İleri Proxy oluşturmak. Ben bunu başarmaya çalışıyorum.
Saikrishna

Bu hatayı aldığınızda proxy'ye gönderdiğiniz istek nedir, HTTP veya HTTPS? HTTPS ise, doğru hatırlıyorsam gerekli CONNECT yöntemi Apache 2.2.24'ten önce uygulanmaz. Ayrıca, LogLevel'i artırabilir ve sonucu gönderebilir misiniz?
bonob

Yanıtlar:


0

Bir vardı böcek Apache'de, ana bilgisayar adlarının büyük / küçük harf duyarlı bir karşılaştırması nedeniyle bu hataya neden olan Son zamanlarda düzeltildi ve düzeltme ile yeni bir yapı şimdi kullanılabilir . Ayrıca, sertifikanın kongre ile daha uyumlu olması için tüm küçük harflere değiştirilmesini sağlayabilirsiniz (büyük harf nadiren kullanılır).


0

Tek düşündüğüm apache sayesinde mümkün değil. Ancak Nginx, Node.js gibi modern sunucular SPDY protokolü ile desteklemektedir. bağlantı


Kendi sorunuzu cevapladığınızı biliyorum, ancak cevabınızdaki kilit noktaları verebilir ve bağlantıyı referans olarak kullanabilirsiniz. Bağlantılar hızla eskimiş hale gelebilir veya kaldırılabilir ya da cevabınızı benzer bir sorunu izleyenler için anlamsız hale getirilebilir.
Matthew Williams

mod_spdy en azından 2012'den beri Apache'de mevcuttu ...
Auspex
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.