Я хочу иметь разные SSL-сертификаты для разных доменов, которые я размещаю в одном экземпляре Jetty.
Я не хочу использовать Apache для своего сервера приложений Jetty.
Я использую Jetty 6.1.22. До сих пор я видел только конфигурации с одним сертификатом SSL, а конфигурация для SSL происходит на сервере, что наводит меня на мысль, что Jetty был разработан для поддержки одного сертификата SSL.
Сообщите мне, могу ли я использовать Jetty с более чем одним сертификатом.
Я рассматриваю возможность перехода на JBoss Application Server 6.0, поскольку он ближе к реальному серверу приложений. Это что-то, что можно сделать там, и поддерживается ли это?
Немного поискав, я наткнулся на это: https://stackoverflow.com/questions/208149/configure-multiple-keystores-in-jboss-depending-on-requested-hostname
Так ли это? Если это так, то я сомневаюсь, что Jetty или какой-либо другой сервер приложений будет его поддерживать. Мне нужно было бы 2 разных разъема - другой порт или IP-адрес. Тогда мне понадобится прокси-сервер Apache Jetty / JBoss.
Уолтер
Вы читали документацию по Jetty?
Glassfish делает это, прикрепляя сертификаты к слушателям HTTP (S), которые затем, в свою очередь, привязываются к экземпляру сервера.
Согласно документации, способ, которым делает это Jetty, очень похож:
http://docs.codehaus.org/display/JETTY/Virtual+hosts
Вы просто настраиваете свои vhosts (делаете их на основе IP, SSL согласовывается до отправки заголовков хоста), а затем добавляете несколько коннекторов, по одному на коннектор IP / HTTPS. У каждого может быть собственное доверие / хранилище ключей с сертификатом SSL в них.
https://web.archive.org/web/20150509123728/http://docs.codehaus.org/display/JETTY/Ssl+Connector+Guide
новее: https://www.eclipse.org/jetty/documentation/current/configuring-ssl.html
Просто добавьте соединитель для каждого сертификата. Обойти это невозможно, для SSL требуется выделенный IP-адрес, поэтому вы хотите обслуживать один коннектор на каждый SSL-сайт.
Согласно этому документу:
https://www.eclipse.org/jetty/documentation/9.4.x/configuring-connectors.html
Директива host для соединителей позволит вам привязать их к определенному адресу, тем самым решив вашу проблему.
Надеюсь это поможет.
Потому что я потратил некоторое время на изучение документации Jetty:
С Java 8 (которая может выполнять SNI) вам не нужно настраивать что-нибудь для обслуживания нескольких различных сертификатов HTTPS. Они должны быть только в вашем хранилище ключей. Jetty автоматически выберет нужный, в зависимости от имени хоста, используемого при подключении.