我正在尝试将不安全端口上的流量重定向到安全端口,如下所述: https://www.ibm.com/support/knowledgecenter/en/SSD28V_9.0.0/com.ibm.websphere.liberty.autogen.core.doc/ae/rwlp_config_httpProxyRedirect.html
相反,两个端口都可用,我在日志中看不到任何内容。它好像根本没有配置httpProxyRedirect。
<?xml version="1.0" encoding="UTF-8"?>
<server description="CAST Liberty Server">
<!-- Enable features -->
<featureManager>
<feature>webProfile-7.0</feature>
</featureManager>
<application id="app" context-root="/" type="war" location="${war.name}">
<classloader apiTypeVisibility="spec, ibm-api, api, third-party" />
</application>
<httpProxyRedirect id="defaultHttpProxyRedirect" httpPort="${http.port}" httpsPort="${https.port}" />
<keyStore id="defaultKeyStore" password="pass" />
<httpEndpoint host="*" httpPort="${http.port}" httpsPort="${https.port}" id="defaultHttpEndpoint" />
<applicationMonitor updateTrigger="mbean" />
</server>
答案 0 :(得分:0)
最有可能的是,您缺少web.xml中的安全性约束。此配置告知服务器需要通过安全传输访问哪些URL,然后将符合条件的请求从非安全端口重定向到安全端口。本教程可能有所帮助:https://docs.oracle.com/cd/E19798-01/821-1841/bncbk/index.html
另外,请记住,当您在应用程序服务器前面有代理服务器时,server.xml中的httpProxyRedirect配置用于重定向。例如,您可以在主要&#34; www.ibm.com&#34;上安装代理服务器。 host - 侦听HTTP端口80和HTTPS端口443.但是该主机可能会将某些请求路由到侦听不同端口的其他主机(例如&#34; app1host.internal.ibm.com&#34;)上的Liberty应用程序服务器(即HTTP端口9080和HTTPS端口9443)。在这种情况下,仅使用web.xml中的安全性约束将尝试将Liberty服务器上的客户端请求从9080重定向到9443,但是在www.ibm.com主机上 - 没有任何内容正在侦听这些端口。在这种情况下,您应该像这样配置httpProxyRedirect:
<httpProxyRedirect httpPort="80" httpsPort="443" host="www.ibm.com" />
通过配置,对安全URL的客户端HTTP请求将被重定向到端口443上的www.ibm.com,代理服务器将请求转发到app1host.internal.ibm.com端口9443。
希望这有帮助, 安迪
答案 1 :(得分:0)
这是我在web.xml中使用的安全性约束,它对于Tomcat和IBM Websphere 8.5.5.15都适用:
<security-constraint>
<web-resource-collection>
<web-resource-name>Entire Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
注意:请确保将其放在<servlet-mapping>
之后。