2013-04-29 28 views
6

IISで複数のサイトが実行されています.SSLリクエストをサポートするWebサイト(SiteB)の1つです。私は、Webサイトのバインディングを編集することができましたが、私はプロトコルSSL編集バインディングを選択したときに問題が発生しましたHostNameフィールドが無効になっている、https要求に応答するためにホスト名を設定できません。 :// siteBのWebサイトをロードします。IIS 7 SSLを1つのサイトに追加すると、他のすべてのサイトがhttps要求に応答します。

例えば私のbidingsは、私は私のブラウザでhttps://www.siteb.comを入力した場合、それは正常に動作しますが、私は、ブラウザでhttps://www.sitea.comを入力した場合、SiteBのウェブページは、シティアのホスト名がロードされている次の

Site A 

IP Port HostName 
*  80 www.sitea.com 

Site B 
IP Port Hostname 
* 443 www.siteb.com 
* 80 www.siteb.com 

です。

どうすれば私のIIS上でhttps://www.siteb.comがhttps要求に応答することができますか?

私もappcmdコマンドで試してみましたが、それはうまくいきません。

appcmd set site /site.name:{sitB} /bindings.[protocol='https',bindingInformation='*:443:*'].bindingInformation:*:443:siteB.com 

ありがとうございました。

+0

私は同じ問題があります。私は賞金を稼ぐつもりです。 – Germstorm

+0

証明書を作成しましたか? CNとは何ですか? –

+0

他のサイトはすべて「仮想ディレクトリ」または「アプリケーション」または「ウェブサイト」としてホストされていますか?ウェブサイトに設定を適用したと思われ、複数の仮想ディレクトリ/アプリケーションがウェブサイトでホストされています。 –

答えて

9

ルート問題
この予期しない動作がそんなにそれがため、Web暗号化プロトコルであるようので、IISのではありません。

2つの主要なWeb暗号化プロトコルは、SSLとTLSです。これらのプロトコルはいずれも、要求情報をサーバーに渡す前に安全な接続をネゴシエートします。つまり、セキュアな要求では、サーバーは実際にセキュアな接続が確立されるまでホスト名を学習しません。

この制限に対処するために、TLSとSSLの拡張機能が作成されました。これはSNI(サーバー名の識別)と呼ばれています。問題は、この拡張機能をサーバーマシンとクライアントマシンの両方でサポートする必要があることです。現在のところ、クライアントブラウザのサポートには多少の差があります。ブラウザの一覧については、SNIの記事を参照してください。それが原因でIISを使用して、HTTPSバインディングにホスト名をバインドすることはできません上記のホスト名の制限のある問題

IISの取り扱い。 IISがHTTPS要求を特定のホスト名にルーティングする方法はありません。要求されたホスト名が最初に接続のネゴシエーションを開始するときにそれを認識しないからです。

IISがクライアントとのセキュリティで保護された接続をネゴシエートし、要求されたホスト名がHTTPSバインディング(例えばhttps://sitea.comの要求)以外のサイトのものであることを確認すると、IISはエラーコードを返すか、優雅に。 IISは後者を選択し、ユーザーが別のサイトを要求していてもHTTPSバインディングを使用してサイトを提供することで正常に失敗しようとします。

ソリューション/回避策

  • はHTTPへのセキュリティで保護されていないWebサイトのすべてのHTTPS要求をリダイレクトするために書き換えルールを作成します。
  • SNI拡張を使用するには、IIS 8にアップグレードしてください。その後、訪問者にSNIをサポートするブラウザにアップグレードするよう依頼します。
  • 別のドメインの要求を受信すると、安全なサイトでエラーメッセージが返されます。
  • IIS以来の代わりに、ホスト名のIPアドレスによってバインドは、IPアドレスによる経路HTTPSリクエスト

参照
は私の情報のほとんどは、我々は、SSLを必要とする複数のサイトを持つWebサーバを実行しWikipedia article on SNI

+0

IIS 8を試してみると、SNIなしでこのケースを処理できるようです。 SNIは、要求されたドメインに対応する証明書を選択するためにのみ必要です。その後、IIS 8はWebサイトを選択できるように見えます。 httpsバインディングでドメインsiteaを指定し、他のhttpsバインディングをxp IE8(このような場合はSNIなし)からアクセスすることはできません。sitea =>成功した場合はhttps、サーバーがサービスしている他のドメインの場合はhttps =>証明書の不一致、IIS 404一致するバインディングがない場合ただし、IIS7ではドメインにhttpsバインディングを制限することはできません。 –

2

から来たことができます問題はありません。

問題を正しく理解していれば、ホスト名の代わりにバインディングを設定する必要がありますが、これはうまくいかないでしょう。したがって、私たちがホストするSSL対応サイトごとに、個別の外部IPアドレスが必要です。次に、IISでサイトを設定するときにそのIPアドレスをバインディングとして入力します。

関連する問題