4

Billing.example.com用に2つのローカルvhost(httpと自己署名https)をセットアップし、firebugを使用してfirefoxで試してみました。Http vhostの唯一の目的は、すべてのリクエストをhttpsにリダイレクトすることです。

ほとんどの場合、httpsからページをリクエストすると、関連するリソース(images、js、cssなど)を含む1つまたは2つのファイルが返され、phpページ自体がFirebugウィンドウで400の不正なリクエストを返すことがあります。また、1つまたは2つのファイルがロード済みとして表示されることもあります。長い間。firebugの問題リンクをクリックすると、ファイルが正常に読み込まれます。また、ページをロードするたびに、不正なリクエストやロードされていないファイルが変更されます。

何か案は?

サーバー:Ubuntu 10.04、Apache / 2.2.14、mod_ssl

Vhosts:

Listen 80
<VirtualHost *:80>
    ServerName billing.example.com
    UseCanonicalName On
    DocumentRoot /code/site/billing
    ...
    RewriteEngine On
    RewriteRule ^/(.*)$ https://billing.example.com/$1
</VirtualHost>

Listen 443
<VirtualHost *:443>
    ServerName billing.example.com
    UseCanonicalName On
    DocumentRoot /code/site/billing
    ...
    SSLEngine On 
    SSLCertificateFile /code/site/ssl/example.crt
    SSLCertificateKeyFile /code/site/ssl/example.key
</VirtualHost>

残りはubuntuapache2のデフォルト設定です。

4

2 に答える 2

0

私はApache 2.2.9でこの問題を抱えていましたが、Apache 2.2.22にアップグレードすると問題が解決しました。

一部のページ要求で、ランダムな 400 応答コードを取得します。画像の場合もあれば、AJAX リクエストの場合もあります。このメッセージとともに 400 を返すのは、ページ自体である場合があります。

不正なリクエスト お使いのブラウザが、このサーバーが理解できないリクエストを送信しました。リクエスト ヘッダー フィールドに区切り記号「:」がありません。住む

関連していると思われる次の敷物レポートを見つけました。このバグは apache 2.2.15 で修正されました: https://bugzilla.redhat.com/show_bug.cgi?id=652335

このバグが、https を使用する際の多くのランダム エラーの原因だと思います: お使いのブラウザは、このサーバーが理解できないリクエストを送信しました リクエスト ヘッダー フィールドに ':' セパレータがありません。

そこで、最新の mod_ssl を使用して最新の apache に更新してみようと思いましたが、うまくいったようです。

于 2012-08-22T09:51:36.793 に答える
0

ssl 部分については、UseCanonicalName Off仮想ホストの場合、メイン サーバーとは異なるドメインを使用している可能性が高いため、仮想ホストの外部でファイルを検索する可能性があります。

ポート 80 で完全を期すために、[R,L] をリダイレクトに追加します。

RewriteEngine  On
RewriteRule    ^/(.*) http://billing.example.com/$1 [L,R]
于 2010-10-28T03:06:48.250 に答える