• 締切済み

HTTPS(SSL)通信とサーブレットについて

ショッピングサイトなどで、買い物カゴに入れたあと、支払いするときにHTTPS(SSL)通信になりますが、この場合の仕組みがよくわかりません。 (1)これは、WebサーバをHTTP用とHTTPS(SSL)用の2台構成として、買い物カゴにいれるまでは、HTTP用のWebサーバでアクセスしておいて、支払いするときにHTTPS(SSL)用のWebサーバにアクセスさせることで実現してるのでしょうか? (2)ショッピングサイトを見ると、URLはHTTP://がHTTPS://に変わるだけで、サーバが変わっているようには見えませんが、これは、apacheなどのWebサーバが持つバーチャルホスト機能で実現してるのでしょうか? (3)アプリケーションを開発する側としては、HTTP通信を行うサーブレットはHTTP用のサーバに配置して、HTTPS(SSL)通信を行うサーブレットはHTTPS(SSL)用のサーバに配置しておいて、HTTPS(SSL)通信をしたいときは、HTTP用のサーバに配置したサーブレットから、HTTPS(SSL)用のサーバに配置したサーブレットを呼びだすだけでOKでしょうか? (4)また、(3)が正しい場合、サーブレットの配置さえ気にしていれば、特にHTTPS(SSL)用のプログラムを組む必要はないでしょうか? 調べたのですが、最初からHTTP(SSL)通信する場合の方法しか記載がなくて困っています。

みんなの回答

回答No.1

(1), (2) apache では同じサーバです。同一のサーバが両プロトコルをサポートしています。 (3) サーブレット側では特に意識しません。http と https でサーブレットを共用できます。 切り替えはサーバ側のやサーブレットのリダイレクトで行うことが多いですね。 (4) サーブレット側では意識しませんが、暗号化のため、apacheの仮想ホストの機能が制限されます。

ell999
質問者

補足

サーブレットのリダイレクトで、HTTPS(SSL)通信用のWebサーバのURLに飛ばすということですね。ありがとうございます。 私自身が大きく勘違いしてるかもしれませんが、回答で、「httpとhttpsでサーブレットを共用する」とありますが、https(SSL)用のルートディレクト配下にサーブレットを配置した場合、その配置されたサーブレットはhttps(SSL)として動くと思っていたのですか。。。根本的なことが分かっていないのかもしれません。

関連するQ&A