コンテクスト
Windows Server2008のIIS7.5(httpポート80、https 443)の背後にJavaアプリケーションサーバー(httpポート8080、https 8181)を配置する必要があります。
手順
IIS ARR
一部のリクエストをJavaアプリケーションサーバーにルーティングするために、プロキシを有効にするためのモジュールを使用しました。URL Rewrite
また、この目的のためにいくつかのルールを作成しました。を使用するhttp
と、すべてが正常に機能します。
使用されるルールは、要求されたURLがパターンと一致する場合(MyAppContextRoot.+)
、実行されるアクションはRewrite:であると述べていますhttp://localhost:8080/{R:0}
。
httpsを使用する別のアプリケーションの場合、書き換えルールは次のとおりhttps://localhost:8181/{R:0}
です。
httpsリクエストをルーティングするには、IISがリクエスト/回答を暗号化/復号化するため、IISとJavaの間で同じ証明書を共有する必要があることをどこかで読みました。私が間違っている場合は私を訂正してください。
私はまだ開発段階にあるので、自己署名証明書を共有することにしました。私はそれをで作成し、以下を使用SelfSSL7
してJavaにインポートしました:keystore
keytool
selfSSL7 /Q /T /I "Default web site" /N cn=myDomain.com /X /F MyCertificate.pfx /W myPassword
keytool -importkeystore -srckeystore C:\myPath\MyCertificate.pfx -srcstoretype pkcs12 -srcalias my -deststoretype jks -deststorepass myPassword -destalias MyAlias
質問
両方の証明書がそれぞれの役割を果たします。https://myDomain.com
そしてhttps://myDomain.com:8181
稼働していますが、ルーティングしようとすると、次のエラーが発生します。
502 - Web server received an invalid response while acting as a gateway or proxy server.
There is a problem with the page you are looking for, and it cannot be displayed. When the Web server (while acting as a gateway or proxy) contacted the upstream content server, it received an invalid response from the content server.
ただし、証明書を見ると、発行先、発行元、有効性、署名アルゴリズム、キーサイズに違いがあります。特に、SelfSSL7によって作成されたもののアルゴリズムはsha1RSA(1024ビットキー)であり、keytoolによって作成されたものはsha256RSA(2048ビットキー)です。