
ユーザーが独自のカスタム ドメインを指定できる ASP.NET MVC アプリケーションを作成しました。すべての要求を既定の Web サイトに送信するように IIS を構成したので、ホスト ヘッダーを使用する必要がありません。すべて完璧に動作します。唯一の問題は SSL です。
この質問は多くのフォーラムで何度も尋ねられていることは知っていますが、回答は一般的に矛盾していたり、(これはできない) などの絶対的な表現になっています。これは私にとっては選択肢ではありません。私が探しているのはいくつかの選択肢です。型破りな方法も歓迎します :)。
ISA サーバーを SSL プロキシとして使用することを提案する建設的な回答をいくつか見ました。これについて詳しい人はいますか? または、これを構成して成功した人はいますか?
基本的に、ユーザーにアプリケーションから CSR を要求し、SSL 証明書を購入してダウンロードし、アプリケーションに戻って認定認証会社が発行した証明書をアップロードする方法を提供したいと考えています。
私は、サイトでカスタム ドメインと SSL を使用したいクライアントに個別の IP アドレスを提供しなくても、これを実行したいと考えています。これは、私のアプリケーションが Amazon クラウドでホストされており、Amazon が大量の IP アドレスを私に提供することに消極的だからです。
私のアプリケーションは IIS6 または IIS7 でホストできます。
解決策: 皆さん、この件についてご協力いただきありがとうございました。私は確かに、この問題を今ほどよく理解していませんでした。今のところの解決策は、ワイルドカード証明書を生成し、クライアントがセキュリティ保護された接続を希望する場合は clientname.someshareddomain.com を使用するように強制することだと思います。それでは納得できないクライアントの場合は、おそらく、Amazon Web Services への API 呼び出しを介して別の Elastic IP アドレスをプロビジョニングし、IIS で新しい Web サイトを作成してアプリケーションのルート フォルダーにポイントし、その新しいサイトからプログラムで CSR を生成することになります。適切な IP アドレス ブロックを提供するには、Amazon と何らかの契約を結ぶ必要があります。
答え1
「これはできません」という答えが気に入らないのは残念ですが、やりたいことができないのです。テクノロジーのせいで、望みどおりに機能しないのです。
理由はこうです。
HTTP プロトコルでは、複数のサーバーが IP アドレスを共有できます。これは、HTTP/1.1 Host ヘッダーを介して行われます。
Host: servername.example.com
SSLハンドシェイクが行われる前にHTTP ハンドシェイクが行われます。つまり、サーバーは、クライアントがどのサーバーを希望しているかに基づいて、どの証明書をクライアントに提示すればよいかわかりません。
したがって、いくら努力しても、1 つの IP アドレスで複数の証明書を使用することはできません。どれだけ努力しても、またどれだけ努力しても、これは選択肢になりません。
答え2
マイケルが言ったように、何かが不可能なら、足を踏み鳴らしたり、ふくれっ面をしたりしても状況は変わりません。
技術的に言えば、別々の IP アドレスに別々の SSL 証明書を配置することは問題ではありません。これは単にプロビジョニングの問題 (これは単純なプログラミングの問題です) であり、大規模企業のニーズを理解し、SSL ドメイン用に適切なサイズのアドレス ブロックを事前に割り当てる用意のあるネットワーク プロバイダーがいるかどうかが問題です。
しかし、もう一つの選択肢があります。それは「サーバー名の表示」では、ブラウザが SSL ネゴシエーション時にどの仮想ホストと通信したいかをサーバーに伝えることができるため、サーバーは正しい証明書を提示できます。残念ながら、この機能は普遍的にサポートされているわけではありません。上記の Wikipedia ページによると、IIS 6 も 7 もサーバー側でこれを処理できず、クライアント側の IE で使用するには Vista を実行する必要があります (Firefox、Opera、Chrome はすべて以前からこの機能をサポートしています)。
したがって、適切な Web サーバーに切り替えて、古い Microsoft OS で古いブラウザーをまだ使用しているユーザーベースの一部を遠ざけるつもりなら、それを使用できます。ただし、Windows 98 で IE 5.5 を実行している Tillie おばさんを困らせたい人は誰もいないようです...
答え3
問題が安全なセッションを提供することであり (各顧客が独自の証明書を所有することではない)、ワイルドカード SSL 証明書を使用して負担と複雑さを軽減してみてはいかがでしょうか。