2016-05-16 3 views
1

Я довольно новичок в HTTPS, и я пытаюсь разместить Jetty HTTPS-сервер из пакета OSGi. Все отлично работает, когда я передаю свойства ниже в качестве аргументов виртуальной машины в моей конфигурации запуска, но поскольку это не вариант для меня, я поставляю параметры внутри метода запуска активатора, используя метод System.setProperties().Хостинг HTTPS-сервера внутри OSGi

System.setProperty("org.eclipse.equinox.http.jetty.https.port", "9090");   
System.setProperty("org.eclipse.equinox.http.jetty.https.enabled", "true"); 
System.setProperty("org.eclipse.equinox.http.jetty.https.host", "0.0.0.0"); 
System.setProperty("org.eclipse.equinox.http.jetty.ssl.keystore", "/home/https/keystore.jks"); 
System.setProperty("org.eclipse.equinox.http.jetty.ssl.password", "password"); 

Используя этот подход, сервер HTTPS на порту 9090 работает нормально, но есть две проблемы,

  1. То же веб-страница также служившие на 80 порту HTTP, который я не хочу. Это там, даже когда я использую:

    System.setProperty("org.eclipse.equinox.http.jetty.http.enabled","false"); 
    
  2. Поскольку нежелательный HTTP веб-страница получает размещенный на порт 80 (порт System), я должен вызвать расслоение как корень в противном случае я получаю java.net.SocketException: Отказано

Так как может быть другие страницы, размещенные на порт 80, я не хочу, чтобы отключить HTTP полностью или вручную разрегистрировать сервера из порта 80 в моем пачке.

Я очень благодарен за любые указания о том, как остановить это поведение без необходимости изменять какие-либо другие порты вручную.

ответ

0

Я понял, что сервер на порту 80 был вызван конфликтами с другим сервером, размещенным другим устройством на устройстве. Все работает так, как ожидалось, при отключении другого пакета. Я все еще пытаюсь получить оба из них, чтобы сосуществовать, но ответы here и here весьма полезны.

Смежные вопросы