2015-03-09 3 views
2

У меня есть проблема с установкой переадресации от 8080 до порта 443.JBoss 5.1.0.GA - Перенаправить на порт 443 не работают, всегда попадают в 8443

Здесь сценария: У меня есть груз балансировщик, слушая порты 80 и 443. Все запросы на порт 80 отправляются на порт 8080 на хостах за балансировщиком нагрузки. Все запросы на порт 443 отправляются на порт 8443 на хостах за балансировщиком нагрузки.

Когда запрос поступает на порт http://address.com, он использует порт 80 на балансировщике нагрузки и порт 8080 на хосте, здесь все прекрасно.

Переадресация должна теперь указывать на https://address.com:443, но вместо этого указывает на https://address.com:8443, который балансировщик нагрузки не понимает, и поэтому запрос умирает.

Я также попытался изменить порт https для разъема https на 443 (не зная, откуда поступает информация о портах) без эффекта, используется порт 8443.

У кого-нибудь есть идея, что мне нужно изменить, чтобы 80 -> 8080 ==> 443 -> 8443?

Заранее спасибо

Здесь разъем server.xml HTTP:

<Connector protocol="HTTP/1.1" 
    port="8080" 
    address="${jboss.bind.address}" 
    connectionTimeout="20000" 
    redirectPort="443" 
    compression="2048" 
    compressableMimeTypes="text/html,text/xml,text/plain,text/css,text/javascript" 
    URIEncoding="UTF-8"/> 

Здесь соответствующий разъем HTTPS:

<Connector protocol="HTTP/1.1" 
    SSLEnabled="true" 
    port="8443" 
    address="${jboss.bind.address}" 
    compression="2048" 
    compressableMimeTypes="text/html,text/xml,text/plain,text/css,text/javascript" 
    scheme="https" 
    secure="true" 
    clientAuth="false" 
    sslProtocol = "TLS" 
    ... keystore stuff ... 
    /> 

И конфиденциальный блок из web.xml

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Security Required</web-resource-name> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

ответ

1

Я нашел обходное решение для этой игры в Интернете (потерял фактическую страницу, на которой я ее нашел :()

В сервере/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml является XSL-преобразование сделано в порт перенаправлением:

<xsl:when test="(name() = 'redirectPort')"> 
    <xsl:attribute name="redirectPort"> 
     <xsl:value-of select="$portHttps" /> 
    </xsl:attribute> 
    </xsl:when> 

Комментируя этот выход (изменение его):

<!-- 
    <xsl:when test="(name() = 'redirectPort')"> 
    <xsl:attribute name="redirectPort"> 
     <xsl:value-of select="$portHttps" /> 
    </xsl:attribute> 
    </xsl:when> 
--> 

сейчас она перенаправляет правильно.

+0

Спасибо, что вы спасли мою жизнь. Я просто терял время, пытаясь настроить весну и JBOSS! К сожалению, вы потеряли веб-страницу, которая говорит о комментировании этой строки. Мне бы хотелось узнать больше об этом! – Akyo

Смежные вопросы