Назад | Перейти на главную страницу

Jetty - Virtualhosting - SSL-сертификаты

Я хочу иметь разные 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 автоматически выберет нужный, в зависимости от имени хоста, используемого при подключении.