7

Apache 2.2とのSSL接続を介してURLを透過的に書き換える最良の方法は何ですか?

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全体?

4

3 に答える 3

3

secure.example.comとdbadmin.example.comの両方にサービスを提供するように単一のVirtualHostを構成します(これを実現するのは*:443 VirtualHostだけです)。次に、 mod_rewriteを使用して、dbadmin.example.comへのリクエストのURIを調整できます。

<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の書き換えが機能した後に設定できる複雑さの別個のレイヤーです。

于 2008-08-15T08:21:28.300 に答える
2

SSL証明書が「ワイルドカード」またはマルチサイトの種類でない限り、これは機能しないと思います。書き換えはブラウザに表示され、アドレスバーの名前は証明書に対して有効である必要があります。そうでない場合、ユーザーにはセキュリティエラーが表示されます(ユーザーはいつでも受け入れて続行できますが、希望どおりに聞こえません) )。

詳細はこちら

于 2008-08-12T02:10:56.480 に答える
0

apaches mod_rewriteがあります。または、サーバー上のpath / to / example.com/dbadminにhttps://dbadmin.example.comを送信するようにapacheを設定できます。

<VirtualHost *>
ServerName subdomain.domain.com
DocumentRoot /home/httpd/htdocs/subdomain/
</VirtualHost>
于 2008-08-12T01:12:14.740 に答える