jetée 9.3.8.v20160314
fonctionnant sur la machine Linux AWS EC2 avec Java 1.8.0_51
a deux hôtes virtuels définis dans deux contextes différents - webapps/app1
et webapps/app2
avec un répertoire webapps/ROOT
vide.Utilisation du port HTTPS non par défaut, sans l'écrire dans l'URL sur la jetée/Linux
Chaque contexte Web a son propre connecteur SSL avec un fichier de clés approprié, de deux noms de domaine différents, par exemple www.example1.com
et www.example2.com
. Le problème est que chaque connecteur SSL doit utiliser un port différent, donc la première application aurait le port 443
mais la seconde utiliserait 444
, qui n'est pas le port par défaut pour les appels HTTPS. Maintenant, les clients d'app2 devraient utiliser https://www.example2.com:444
ce qui n'est pas joli.
Est-il possible de supprimer la pièce :444
?
Peut-être qu'il est possible de définir quelque chose sur WebAppContext.xml pour transférer les appels vers le port 444
, ou peut-être dans le fichier de zone DNS?
Peut-être que cela peut être fait au niveau Linux, en utilisant iptables
?
Contenu de webapps/appX.xml
-
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/</Set>
<Set name="war">
<SystemProperty name="jetty.home" default="."/>/webapps/appX
</Set>
<Set name="virtualHosts">
<Array type="java.lang.String">
<Item>www.exampleX.com</Item>
</Array>
</Set>
<!-- by Code Range -->
<Get name="errorHandler">
<Call name="addErrorPage">
<Arg type="int">400</Arg>
<Arg type="int">599</Arg>
<Arg type="String">/</Arg>
</Call>
</Get>
</Configure>
Contenu de etc/jetty-ssl.xml
-
<Configure id="Server" class="org.eclipse.jetty.server.Server">
...
<Call name="addConnector">
<Arg>
<New id="sslConnector2" class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server"><Ref refid="Server" /></Arg>
<Arg name="acceptors" type="int"><Property name="jetty.ssl.acceptors" deprecated="ssl.acceptors" default="-1"/></Arg>
<Arg name="selectors" type="int"><Property name="jetty.ssl.selectors" deprecated="ssl.selectors" default="-1"/></Arg>
<Arg name="factories">
<Array type="org.eclipse.jetty.server.ConnectionFactory">
</Array>
</Arg>
<Set name="host"><Property name="jetty.ssl.host" deprecated="jetty.host" /></Set>
<Set name="port">8444</Set>
<Set name="idleTimeout"><Property name="jetty.ssl.idleTimeout" deprecated="ssl.timeout" default="30000"/></Set>
<Set name="soLingerTime"><Property name="jetty.ssl.soLingerTime" deprecated="ssl.soLingerTime" default="-1"/></Set>
<Set name="acceptorPriorityDelta"><Property name="jetty.ssl.acceptorPriorityDelta" deprecated="ssl.acceptorPriorityDelta" default="0"/></Set>
<Set name="acceptQueueSize"><Property name="jetty.ssl.acceptQueueSize" deprecated="ssl.acceptQueueSize" default="0"/></Set>
</New>
</Arg>
</Call>
...
</Configure>
connecteur SSL est réglé sur le port 8444
et transmis par iptables
du port externe 444
-
sudo iptables -t nat -I PREROUTING -p tcp --dport 444 -j REDIRECT --to-port 8444