Nginx 1.15.6 с openssl 1.1.1, Ранние данные не отправлены - PullRequest
0 голосов
/ 17 ноября 2018

Мы установили "ssl_early_data on;" и "proxy_set_header Early-Data $ ssl_early_data;"в конфиге nginx 1.15.6, построенном с openssl 1.1.1, но когда мы запускаем следующую команду, она показывает, что EarlyData не отправлено.есть идеи, как решить эту проблему?

openssl s_client -connect www.rupeevest.com:443

SSL рукопожатие прочитало 4693 байта и записало 399 байтов

Проверка: ОК

Новый, TLSv1.3, шифр - TLS_AES_256_GCM_SHA384 Открытый ключ сервера - 2048 бит. Безопасное повторное согласование НЕ поддерживается Сжатие: НЕТ Расширение: НЕТ Нет согласования ALPN Ранние данные не были отправлены

Проверить код возврата: 0 (нормально)


1 Ответ

0 голосов
/ 14 января 2019

Для отправки «ранних данных» клиент и сервер должны поддерживать режим обмена PSK (сеансовые куки).См. https://tools.ietf.org/html/rfc8446#section-2.3

Чтобы проверить использование OpenSSL, в качестве примера варианта использования сначала сохраните сеанс в файл, затем используйте этот файл сеанса и отправьте ранние данные (запрос HTTP) на сервер.

$ host=www.example.org # replace with your server name
$ echo -e "HEAD / HTTP/1.1\r\nHost: $host\r\nConnection: close\r\n\r\n" > request.txt
$ openssl s_client -connect $host:443 -tls1_3 -sess_out session.pem -ign_eof < request.txt
$ openssl s_client -connect $host:443 -tls1_3 -sess_in session.pem -early_data request.txt

Обратите внимание, что ваш сервер должен поддерживать TLS 1.3 и 0-RTT, иначе пример не будет работать.

Надеюсь, это поможет!

...