2017-09-19 3 views
0

Je suis assez nouveau à jetty, mais j'ai creusé beaucoup de pages en essayant de trouver la réponse à celui-ci.Comment configurer jetty pour écouter sur plusieurs ports pour les connexions SSL: un avec mutuelAuth, un sans

Je voudrais avoir une seule instance de jetée exécutant une seule webapp. J'en ai besoin pour écouter les connexions SSL sur deux ports, un qui utilise mutuellement ssl, et un autre qui utilise le standard ssl (j'utiliserai une méthode d'authentification différente avec celui-là).

Le plus proche j'ai trouvé une réponse était this - mais il est préoccupé par les anciens réguliers connexions http - et je pense qu'il peut être à jour compte tenu de son âge.

Je suis assez sûr que cela impliquera tweaks à jetty-ssl.xml, jetty-ssl-context.xml, et jetty-https.xml. . . mais n'ont pas été en mesure de mettre les pièces du puzzle ensemble qui est à la fois plausible, et ne résulte pas en une trace de pile (encore moins faire ce que je veux). Ma meilleure estimation est que j'ai besoin de créer une seconde fabrique de contextes qui nécessite une autorisation mutuelle (similaire à sslContextFactory), puis d'ajouter un autre appel à addIfAbsentConnectionFactory pour le connecter. Mais alors que je semble avoir la capacité de restreindre une fabrique de contextes pour exiger une autorisation mutuelle - et ne vois pas comment je lie les fabriques de contextes pour qu'elles fonctionnent sur les ports séparés.

Répondre

0

Je pense que je l'ai compris - j'espère que cela va sauver beaucoup d'autres frustration. Voici ce que j'ai fait:

  • Créer une seconde fabrique de contexte pour exiger une authentification mutuelle. Il semblait que j'avais besoin de le faire dans un fichier séparé du premier (jetty-ssl-context.xml) ou jetty se plaindrait, donc j'ai créé jetty-ssl-context-mtls.xml et ajouté une référence au nouveau fichier dans le fichier https.mod.
  • Créez un second connecteur pour pointer vers le second port (jetty-ssl.xml).
  • Configurez le deuxième connecteur pour utiliser la deuxième fabrique de contextes. Similairement à ce que j'ai fait avec ssl-context, j'avais besoin de le faire dans un fichier séparé du premier (jetty-https.xml) ou jetty se plaindrait, donc j'ai créé jetty-https-mtls.xml et ajouté une référence à le nouveau fichier dans le fichier https.mod.