No tomcat forçar conexão http para https

3

Estou tentando forçar uma conexão com http://localhost:8443 to https://localhost:8443 . O site funciona corretamente se eles forem para https://localhost:8443 . Caso o usuário esqueça o s em https eu gostaria que o tomcat o corrigisse para eles.

Eu só tenho um conector para https, definido como:

<Connector port="8443" rediretPort="8443"
    protocol="HTTP/1.1" 
    connectionTimeout="20000" 
    SSLEnabled="true"
    maxThreads="150" 
    scheme="https" 
    secure="true"
    clientAuth="false" 
    sslProtocol="TLS" 
    keyAlias="alias"
    keystoreFile="keystore.jks"
    keypass="PASSWORD"
/>

Isso está em um servidor Windows. Tomcat 6 é um servidor autônomo (não conectado ao IIS).

Eu tentei modificar o web.xml para incluir o seguinte:

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

Isso não funciona para mim. Pelo que li, isso redirecionaria um usuário de http://localhost:8080 para https://localhost:8443 (se o conector 8080 definisse o redirectPort como 8443).

Não estou certo de que isso seja possível com um servidor Tomcat independente. Eu sei que isso é possível com mod_rewrite apache ou alguma outra solução semelhante, mas eu não quero instalar qualquer outro serviço na máquina Windows.

    
por Tao Zhyn 25.01.2010 / 21:20

1 resposta

0

quando sua primeira sentença não for um erro de digitação, basta adicionar um conector para http na porta 8080 e adicionar o redirecionamento como você descreveu. você não pode ter http e https escutar na mesma porta. então deixe o http ouvir na porta 8080 e https na porta 8443.

    
por 25.01.2010 / 21:34