2008-08-12 14 views
7

Bir URL'nin üzerinden bir URL'yi Apache 2.2 ile şeffaf olarak yeniden yazmanın en iyi yolu nedir?mod_rewrite'i Mimik SSL Sanal Sunucularına Kullanma?

Apache 2 doğal bir SSL bağlantısı için çok sayıda isme dayalı sanal konakları desteklemez ve ben mod_rewrite bu yardımcı olabilir duydum. siteler

https://secure.example.com/dbadmin

ulaşılabilir ama https://dbadmin.example.com

Nasıl bu istiyorum böylece sunucu kurdunuz

: Böyle bir şey yapmak istiyorum Rewrite kuralı dbadmin.example.com'u secure.example.com/dbadmin olarak yeniden yazacak, ancak istemcinin adres çubuğunda yeniden yazma işlemini göstermeyecek şekilde ayarladım (yani, istemci yalnızca dbadmin.example.com'u görecektir) , her şey https? Orada

cevap

3

Yapılandırma tek VirtualHost (: 443 VirtualHost başarır sadece * yapma) hem secure.example.com ve dbadmin.example.com hizmet etmek. Daha sonra dbadmin.example.com için istekleri için URI ayarlamak için mod_rewrite kullanabilirsiniz:

<VirtualHost *:443> 
    ServerName secure.example.com 
    ServerAlias dbadmin.example.com 

    RewriteEngine on 
    RewriteCond %{SERVER_NAME} dbadmin.example.com 
    RewriteRule !/dbadmin(.*)$ /dbadmin$1 
</VirtualHost> 

Kişisel SSL sertifikası hem secure.example.com ve dbadmin.example.com için geçerli olması gerekir. Terry Lorber'in belirttiği gibi joker bir sertifika olabilir veya ek ana makine adlarını eklemek için subjectAltName alanını kullanabilirsiniz.

sorun yaşıyorsanız

, ilk <VirtualHost *> üzerine kurmak ve onu SSL olmadan çalıştığını kontrol edin. SSL bağlantısı ve sertifikası, URI yeniden yazmanın çalışmasından sonra kurulabilen ayrı bir karmaşıklık katmanıdır.

0

mod_rewrite apaches veya SSL sertifikası "joker" veya çoklu tesis olmadığı sürece, kurulum apache sunucusuna

<VirtualHost *> 
ServerName subdomain.domain.com 
DocumentRoot /home/httpd/htdocs/subdomain/ 
</VirtualHost> 
2

açık/example.com/dbadmin için/yoluna https://dbadmin.example.com doğrudan verebilir Nazik, o zaman bunun işe yaramayacağını düşünüyorum. Yeniden yazma tarayıcıda görüntülenecek ve adres çubuğundaki ad sertifikaya karşı geçerli olmalı veya kullanıcılarınız bir güvenlik hatası göreceklerdir (her zaman kabul edip devam edebileceklerdir, ancak istediğiniz gibi görünmüyor)).

Daha here.