Estoy intentando forzar una conexión http://localhost:8443
con https://localhost:8443
. El sitio funciona correctamente si van a https://localhost:8443
. En caso de que el usuario olvide elsen https me gustaría que Tomcat lo corrigiera.
Sólo tengo un 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"
/>
Esto está en un servidor de Windows. Tomcat 6 es un servidor independiente (no conectado a IIS).
Intenté modificar web.xml para incluir lo siguiente:
<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>
Esto no funciona para mi. Por lo que he leído, esto redirigiría a un usuario de http://localhost:8080
a https://localhost:8443
(si el conector 8080 definiera elpuerto de redireccióncomo 8443).
No estoy seguro de que esto sea posible con un servidor Tomcat independiente. Sé que esto es posible con Apache mod_rewrite o alguna otra solución similar, pero no quiero instalar ningún otro servicio en la máquina con Windows.
Respuesta1
cuando su primera oración no sea un error tipográfico, simplemente agregue un conector para http en el puerto 8080 y agregue la redirección como lo describió. no puedes hacer que http y https escuchen en el mismo puerto. así que deje que http escuche en el puerto 8080 y https en el puerto 8443.