2016-06-25 19 views
0

Ich habe eine Anwendung, die im Allgemeinen in https funktioniert. Tomcat lauscht auf Port 8443:Mischen Sie https und http auf einzelne Tomcat-Instanz

<Connector port="8080" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" /> 
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" 
      maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 
      clientAuth="false" sslProtocol="TLS" 
      keyAlias="MY_ALLIAS" keystoreFile="PATH_TO_MY_KEY" 
      keystorePass="MY_PASWORD" /> 

Apache lauscht auf 80 und Umleitungen an 8443:

<VirtualHost *:80> 
     ServerAdmin MY_EMAIL_ADDRESS 
     ServerName localhost 
     ServerAlias localhost 
     ProxyPass/http://localhost:8443/ 
     ProxyPassReverse/http://localhost:8443/ 
     DocumentRoot /var/www/html 

schließlich in web.xml da ich hinzugefügt:

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>MY_WEB_RESOURCE_NAME</web-resource-name> 
     <url-pattern>/welcome</url-pattern> 
    </web-resource-collection> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

Unfortunatly muss ich hinzufügen IFRAME mit http-Site auf einer meiner Webseiten. Sicherheit ist dort kein Problem. Mein Problem ist die Tomcat-Konfiguration. Ich schätze, ich werde Verkehr mit Apache versenden. Aber jetzt ist meine Frage, wie man Tomcat einrichtet, also kann ich Aufstellungsort http://localhost:8080/siteA dienen und alle anderen Aufstellungsorte werden auf https://localhost:8443/myOtherSites gedient? Ich habe versucht redirectPort = "8443" zu entfernen, aber es ist nicht genug. Ich benutze Tomcat 9.0.0.M4 (es ist kein Problem, zu Tomcat 8 zu wechseln, wenn es nötig wäre). Bitte helfen!

Antwort

0

Zur Lösung dieses Problem eines weiteren <security-constraint> Tag in Ihrem web.xml wie diese `

<security-constraint> 
<web-resource-collection> 
<web-resource-name>Unsecured resources</web-resource-name> 
<url-pattern>/siteA</url-pattern> 
</web-resource-collection> 
<user-data-constraint> 
<transport-guarantee>NONE</transport-guarantee> 
</user-data-constraint> 
</security-constraint> ` 

hinzufügen Da Sie Transportgarantie NONE gesetzt haben, tomcat, wenn ich eine gesicherte Ressource oder nicht nicht überprüfen. Auf diese Weise wird <security-constraint> Ihnen helfen, auf Ihre siteA über http und das andere <security-constraint> Tag zuzugreifen, das Sie bereits erklärt haben, wird Ihnen helfen, auf Ihre anderen Seiten auf https zuzugreifen. Denken Sie daran, in <url-pattern> Tag geben Sie den Pfad zu den Seiten, die Sie als http oder https behalten möchten Lassen Sie mich wissen, wenn dies Ihr Problem löst :).

+0

du bist Willkommen, glücklich zu helfen :) –