2008-08-12 17 views
7

Apache 2.2とのSSL接続でURLを透過的に書き換えるにはどうすればよいですか?mod_rewriteを使用したSSL仮想ホストの模倣?

Apache 2は、SSL接続のために複数の名前ベースの仮想ホストをネイティブでサポートしていないため、mod_rewriteがこれに役立つと聞いています。私はこのような何かをしたいと思います:

サイトは

https://secure.example.com/dbadmin

がアクセスできるように、私は、サーバーを設定しているが、私はhttps://dbadmin.example.com

方法としてこれを持っているしたいと思います書き換えルールによってdbadmin.example.comがsecure.example.com/dbadminに書き換えられますが、クライアントのアドレスバーにリライトを表示することはありません(つまり、クライアントにはdbadmin.example.comが表示されます) 、すべてのhttps?あり

答えて

3

secure.example.comとdbadmin.example.comの両方を提供するように単一のVirtualHostを設定します(*:443 VirtualHostはこれを実現します)。その後、dbadmin.example.comへの要求のURIを調整するmod_rewriteを使用することができます。

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

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

あなたのSSL証明書が両方secure.example.comとdbadmin.example.comのために有効である必要があります。これは、Terry Lorberが述べたワイルドカード証明書でも、subjectAltNameフィールドを使用してホスト名を追加することもできます。

問題が発生した場合は、まず<VirtualHost *>に設定し、SSLなしで動作することを確認します。 SSL接続と証明書は、URI書き換えが機能した後に設定できる複雑なレイヤーです。

0

はmod_rewriteのをアパッチ、またはあなたのSSL証明書は、「ワイルドカード」またはマルチサイトでない限り、あなたは、セットアップApacheは、サーバー

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

に/ example.com/DBADMINに/パスにhttps://dbadmin.example.comを指示することができ私はこれがうまくいくとは思わない。書き換えがブラウザに表示され、アドレスバーの名前が証明書に対して有効である必要があります。そうしないと、セキュリティエラーが表示されます(常に受け入れて続けることができますが、 )。

さらにhere

関連する問題