Tomcat의 리디렉션 포트는 무엇입니까?


13

바람둥이 문서를 이해하기가 어렵고 server.xml을 보면 실제로 문서에 제대로 설명되지 않았기 때문에 이해하기 어려운 포트 샐러드가 있습니다.

예를 들어, 구성 파일의이 줄 server.xml

<Connector port="8345" protocol="AJP/1.3" redirectPort="9875" />

그리고 여기에 또 다른 리디렉션 포트가 있습니다.

<Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" /> 

커넥터 포트의 기능을 이해합니다. 첫 번째 경우에는 아파치에서 작업자를 작성하여 보내려면 두 번째 경우에는 바람둥이에 직접 액세스하기 위해 포트를여십시오. 그러나 리디렉션 포트와 관련하여 상황이 퍼지됩니다.

다음은 ajp 포트에 대한 Tomcat 설명서의 설명입니다.

이 커넥터가 비 SSL 요청을 지원하고 일치하는 SSL 전송이 필요한 요청이 수신되면 Catalina는 요청을 여기에 지정된 포트 번호로 자동으로 재 지정합니다.

나는 항상 1024 이상의 임의의 리디렉션 포트를 선택하고 작동합니다.

그러나 이것이 언제 실현 될 것인가? 요청에 SSL 전송이 필요한시기를 어떻게 알 수 있습니까?

바람둥이 모듈을 실행하는 위성 서버가 있습니다. 이 모듈은 기본 서버에서 Apache를 사용하여 트래픽을 ajp 커넥터로 리디렉션하고 그 반대의 경우에도 적용됩니다.

주 서버에서 https는 아파치에서 시행됩니다. 이것은 모든 요청이 위성 서버로 암호화되거나 일반 텍스트로 전송됨을 의미합니까? 포트 8080을 통해 위성 서버에 액세스하면 암호화되지 않지만 이것이 메인 서버로 리디렉션되는 트래픽에 적용되는지 여부 와이 리디렉션 포트가 어디에서 적용되는지 궁금합니다.

답변:


6

설명서에 정의 된대로 SSL 요청이 서버에 도착하면 리디렉션 포트가 표시되고 http 커넥터 포트가 SSL 요청을 처리 할 수 ​​없으므로 정의 된 포트로 리디렉션됩니다. 그러나 정의 된 경로 재 지정 포트가 SSL 요청을 처리하기위한 커넥터 포트 역할을하는 server.xml 파일에 정의 된 다른 섹션이어야합니다. 예를 들어 http 요청을 포트 80으로 처리하고 https 요청을 포트 443으로 처리하려면 server.xml은 다음과 같습니다.

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS" keystoreFile="/path/to/kestorefile" keystorePass="my_keystore_password"/>

Keystorefile은 웹 사이트의 SSL 인증서입니다.

리디렉션 포트를 커넥터 포트로 사용하여 다른 섹션을 구성하지 않으면 요청이 해당 포트로 리디렉션되지 않습니다. 예를 들어 웹 사이트가 SSL 요청을 지원하지 않고 해당 웹 사이트에 https 요청을 보내려고 하면 브라우저에 보안 연결 실패 와 같은 오류 가 표시됩니다.


그럴 수 있지. http가 아닌 ajp의 구성은 어떻습니까? 또한 언급 한 것처럼 1024 미만의 포트를 사용하는 것이 좋습니다. 그것은 바람둥이를 루트로 실행하는 것을 의미하며 좋지 않습니다.
울루 카이

1
ajp에 대해서는별로 모르지만 리디렉션은 http와 동일하게 작동해야합니다. 1024 미만의 포트 사용에 대해서는 전적으로 귀하에게 달려 있습니다. 80 및 443은 https 및 https 프로토콜의 기본 포트이므로 URL에서 명시 적으로 언급 할 필요가 없습니다. 비표준 포트를 사용하려면 자신에게 달려 있습니다. 루트로 Tomcat을 실행하면 배포 된 응용 프로그램에 따라 다릅니다. 보안 관점에서 응용 프로그램을 신뢰하지 않으면 root로 Tomcat을 실행하면 안됩니다. 다른 방법은 아파치 또는 nginx를 프록시로 사용하여 포트 80 및 443에서 실행하고 요청을 바람둥이로 리디렉션 할 수 있습니다.
Gaurav Pundir

다른 접근 방식 중에서iptables Tomcat으로 트래픽을 리디렉션 하는 데 에도 효과적 입니다.
SeldomNeedy

이 설명은 불완전합니다. 비 SSL에서 SSL 포트로 경로 재지 정하는 경우 server.xml에 대상 커넥터를 포함시키기에 충분하지 않습니다. web.xml에서 <security-constraint> 섹션을 구성해야합니다. 참조 stackoverflow.com/questions/9526425/...
luiscolorado
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.