Конфигурация Apache SNI для отправки предупреждения о подтверждении установления связи: unrecognized_name

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

«предупреждение о подтверждении установления связи: unrecognized_name»

, когда клиент с поддержкой SNI (для Java 1. value = hostname]

например, этот вопрос заключался в том, как этого избежать:

https://stackoverflow.com/questions/7615645/ssl-handshake-alert-unrecognized-name-error-since-upgrade-to- java-1-7-0 .

Моя версия apache - 2.4.33, на Ubuntu 16.04. а файл конфигурации, который я использую, выглядит следующим образом:

<IfModule ssl_module>
Listen 8095
</IfModule>

<IfModule mod_gnutls.c>
Listen 8095
</IfModule>

ServerName localhost

<IfModule mod_ssl.c>
        <VirtualHost _default_:8095>
                        ServerName value.that.does.not.match.the.cn.in.certificate
                        ServerAlias value.that.does.not.match.the.cn.in.certificate
                        DocumentRoot /var/www/html

                        SSLEngine on
                        SSLCertificateFile /path_to_certificates/selfsigned.cert
                        SSLCertificateKeyFile /path_to_certificates/selfsigned.key
                        SSLVerifyClient none
                        SSLVerifyDepth 10
        </VirtualHost>
</IfModule>

Я провел некоторое исследование и использовал следующую команду, чтобы проверить, включен ли SNI для имени хоста, которое я предоставляю через apache:

openssl s_client -servername hostanametocheck -tlsextdebug -connect hostanametocheck:8095 2>/dev/null | grep "server name"

, для чего результат:

TLS server extension "server name" (id=0), len=0

, что, судя по тому, что я прочитал, является индикатором того, что apache отправляет это расширение во время рукопожатия, что в случае клиентов Java> 1.7 станет исключением во время рукопожатия

. 1.8) получит это предупреждение, и рукопожатие не удастся, но когда я здесь приземлился, этого не произошло. Я уже потратил довольно много времени, пытаясь понять это, но похоже, что это выходит за рамки моих знаний о сетях и Linux.

Между прочим, я запускаю apache на своей машине разработки, поэтому порт 8095 вместо 443. Я сопоставил имя хоста с localhost. SNI включен на стороне клиента, как я вижу в журналах подтверждения, что расширение отправлено

Extension server_name, server_name: [type=host_name (0), value=hostname.that.does.not.match.cn.in.certificate.com]

Мы будем очень благодарны за вашу помощь!

0
задан 25 July 2018 в 16:45
1 ответ

Я успешно вызвал ошибку с помощью Apache 2.2.22 (но с какой-то старой версией, не исправленной), поскольку похоже, что они начали удалять это предупреждение из отправки, начиная с 2.4.1 и несколько версий назад. Подробнее по следующей ссылке.

https://bz.apache.org/bugzilla/show_bug.cgi?id=56241

0
ответ дан 24 November 2019 в 02:14

Теги

Похожие вопросы