Почему сервер Jetty не согласился на протокол при отправке запроса? - PullRequest
0 голосов
/ 27 января 2020

Java версия

1,8

версия для пристани

9,3.x

  • Попытка: 13443 ...
  • Набор TCP_NODELAY
  • Подключен к (10.61.45.225) порту 13443 (# 0)
  • ALPN, предлагая http / 1.1
  • Выбор шифра: ВСЕ:! ЭКСПОРТ:! ЭКСПОРТ40:! ЭКСПОРТ56:! ANULL:! НИЗКИЙ:! RC4:@STRENGTH
  • успешно установленный сертификат проверяет местоположения:
  • CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: нет
  • TLSv1.2 (OUT), заголовок TLS, статус сертификата (22):
  • TLSv1.2 (OUT ), TLS-квитирование, Клиент привет (1):
  • TLSv1.2 (IN), TLS-квитирование, Сервер привет (2):
  • TLSv1.2 (IN), TLS-квитирование, Сертификат (11):
  • TLSv1.2 (IN), квитирование TLS, обмен ключами сервера (12):
  • TLSv1.2 (IN), квитирование TLS, запрос CERT (13):
  • TLSv1.2 (IN), квитирование TLS, сервер завершен (14):
  • TLSv1.2 (OUT), квитирование TLS, сертификат (11):
  • TLSv1. 2 (OUT), TLS га ndshake, Обмен ключами клиента (16):
  • TLSv1.2 (OUT), подтверждение TLS, подтверждение CERT (15):
  • TLSv1.2 (OUT), шифр изменения TLS, шифр изменения spe c (1):
  • TLSv1.2 (OUT), рукопожатие TLS, Завершено (20):
  • TLSv1.2 (IN), шифр изменения TLS, Изменить шифр spe c (1):
  • TLSv1.2 (IN), квитирование TLS, завершено (20):
  • SSL-соединение с использованием TLSv1.2 / ECDHE-RSA-AES256-SHA384 ALPN, сервер не согласен с протоколом Сертификат сервера: субъект: CN = karaf @ дата начала: 23 января 07:06:56 2020 GMT истекает дата: 23 июля 07:07:06 2020 GMT эмитент: CN = сертификат SSL результат проверки: сам подписан сертификат в цепочке сертификатов (19), продолжая в любом случае. GET / path / to / resource HTTP / 1.1 Хост:: 13443 Агент пользователя: curl / 7.65.0 Принимать: / Пометить пакет как не поддерживающий многократное использование

Мой вопрос заключается в том, с каким протоколом не согласен сервер? Что касается журналов, кажется, что ALPN предложил использовать http / 1.1, и сервер, возможно, не согласился с ним и, следовательно, с журналом.

Есть ли какое-либо решение для этого?

Почему требуется решение?

Я думаю, что из-за этого запрос, который первоначально был отправлен как запрос https, был преобразован в запрос http при отладке в коде. Смотрите журналы ниже. enter image description here

1 Ответ

0 голосов
/ 28 января 2020

Оказывается, на пристани не был настроен ssl должным образом. Чтобы решить эту проблему, я добавил следующую конфигурацию:

<New id="tlsHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration"> <Arg> <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration"> <!-- This says... Redirect to https://host:8443 if server returns "NOT SECURE" error --> <Set name="secureScheme">https</Set> <Set name="securePort">8443</Set> </New> </Arg> <Call name="addCustomizer"> <Arg> <New class="org.eclipse.jetty.server.SecureRequestCustomizer" /> </Arg> </Call> </New>
...