2016-08-04 24 views
0

WCFを使用してホストされているWebサイトを実行しています。 ウェブサイトが上でホストされている:https://foo.comとSSL certicateは、次のコマンドを使用して登録されている:ホストヘッダーはURLと異なる場合があります

netsh http add sslcert hostnameport=foo.com:443 

我々は、サーバー上のウェブサイトを閲覧すると、すべてが大丈夫です、と証明書が有効です。

サーバーの前に負荷分散機能があり、bar.comをリッスンしてからサーバーにリクエストをリダイレクトします。 ロードバランサはget URLを書き換えず、ホストヘッダーのみを書き換えます。

書き換えヘッダーは次のようになります。

GET https://foo.com/ HTTP/1.1 
Host: bar.com 
Connection: keep-alive 

今、私たちは、SSL証明書が、この場合は無効であることを示しているいくつかの問題があります。

ロードバランサー自体は証明書がhttps://bar.com

質問を聞いて登録されている:

  • それはOKです/ GETのURLとHTTPヘッダー内のホストが異なることを許可されていますか?
  • ヘッダーに異なる値を設定しても問題ない場合は、urlでサイトを実行する必要がありますか? URLまたはホストのURLを取得しますか?
+0

ええと、どの接続がSSLですか?クライアント - > LB、LB - >サーバー? LBには独自の証明書がありますか?はいの場合、そのCNは何ですか? –

+0

Loadbalancer自体にhttps://bar.comを聞いて登録された証明書があります – Manuel

答えて

1

まあ、RFC2616を参照して:

のRequest-URIは、絶対URIがある場合は、ホストが のRequest-URIの一部です。要求内の任意のホストヘッダーフィールド値は、 を無視しなければならない。バックのご質問

ので

、: それが許可されますが、それは相対パスを使用して、より良い混乱を作成するように悪い考え。即ち

GET /path HTTP/1.1 

代わりに

GET https://foo.com/path HTTP/1.1. 

そうするロードバランスの設定を変更します。または、両方の値を同じにします。

ホストヘッダーの値が要求URIと異なる場合、URIはホストヘッダーよりも優先されます。

+0

これは問題かもしれません。私は今、ネットワーク/ロードバランサを担当している開発者と連絡を取っています。私は答えを/ asap as answer asapとして追加します – Manuel

関連する問題