Qual é a porta de redirecionamento do Tomcat?

11

É difícil entender a documentação do tomcat e, olhando para o server.xml, você encontrará uma salada de portas que pode ser difícil de entender, porque ela não é explicada de maneira adequada ou extensiva na documentação.

Por exemplo, esta linha no arquivo de configuração server.xml

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

E aqui você pode encontrar outra porta de redirecionamento:

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

Eu entendo o que a porta do conector faz. No primeiro caso você usa isso para criar um worker no apache e enviá-lo lá, no segundo você abre uma porta para acessar o tomcat diretamente. No entanto, quando se trata do redirecionamento, as coisas ficam confusas.

Aqui está a explicação dada pela documentação do tomcat para a porta ajp:

If this Connector is supporting non-SSL requests, and a request is received for which a matching requires SSL transport, Catalina will automatically redirect the request to the port number specified here.

Eu sempre escolho uma porta de redirecionamento aleatório acima de 1024 e funciona,

Mas quando isso aconteceria? Como ele sabe quando uma solicitação exige transporte SSL?

Eu tenho um servidor de satélite executando um módulo de tomcat. Este módulo entra em vigor redirecionando o tráfego para o conector ajp com o apache do servidor principal e vice-versa.

No servidor principal, https é aplicado no apache. Isso significa que todas as solicitações são enviadas para o servidor de satélite criptografado ou em texto simples? Eu sei que se eu acessar o servidor de satélite através da porta 8080 não é criptografado, mas eu estou querendo saber se isso se aplica ao tráfego que está sendo redirecionado para o servidor principal também e onde esta porta de redirecionamento entrar em vigor.

    
por Ulukai 22.02.2016 / 00:12

1 resposta

5

Conforme definido na documentação, a porta de redirecionamento entrará em cena quando a solicitação SSL chegar ao servidor e, como a porta do conector http não pode manipular solicitações SSL, ela será redirecionada para a porta definida. Mas devem ser uma outra seção definida no arquivo server.xml, na qual a porta de redirecionamento definida atuará como uma porta do conector para manipular solicitações SSL. Por exemplo, se você quiser que as solicitações http sejam manipuladas pela porta 80 e pela solicitação https pela porta 443, o server.xml terá a seguinte aparência:

<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 é o certificado SSL do seu site.

Se você não configurar a outra seção com a porta de redirecionamento como porta do conector, suas solicitações não serão redirecionadas para essa porta. Por exemplo, se o site não oferecer suporte a solicitações SSL e você tentar enviar uma solicitação https para esse site, um erro como Falha na conexão segura será exibido no navegador.

    
por 22.02.2016 / 07:53