TL; DR: сервер отвечает обычным трафиком вместо ожидаемого TLS.Причиной этого могут быть неверные ожидания клиента, неверная конфигурация или старое программное обеспечение с ошибками.
Ошибка попытки подключения SSL: 140770FC: процедуры SSL: SSL23_GET_SERVER_HELLO: неизвестный протокол
Такие ошибки, как unknown protocol
, а также SSL_ERROR_RX_RECORD_TOO_LONG
или wrong version number
, обычно случаются, если другое устройство вообще не поддерживает SSL.Это означает, что клиент инициирует рукопожатие TLS с помощью ClientHello, а сервер отвечает чем-то, что совсем не похоже на SSL / TLS.Тем не менее, клиент будет пытаться интерпретировать ответ без TLS как TLS и, таким образом, будет жаловаться на какую-то странную версию TLS или поврежденную запись TLS.
Это обычно происходит, если кто-то пытается общаться с простым HTTPсервер с HTTPS .Это может быть связано с тем, что сервер никогда не был настроен для HTTPS, во-первых, , и ошибочно предполагается, что изменение URL-адреса с http://
на https://
волшебным образом сделает сервер HTTPS готовым.Возможно также, что он обращается к неправильному порту на сервере, то есть к обычному порту HTTP, а не к порту HTTPS.Также есть случаи, когда из-за неправильной конфигурации сервера говорит только по обычному HTTP, а конфигурация выглядит так, как будто он должен говорить по HTTPS - как в этот вопрос .Или это может быть из-за неправильной конфигурации прокси, то есть , предполагая, что к прокси будет обращаться HTTPS , когда к нему обращается простой HTTP, даже для HTTPS URL, например в этом вопросе .
Это также может произойти, если серверу необходимы некоторые исходные простые данные перед переключением на TLS .Это, например, при использовании прокси для подключения к конечной цели.В случае HTTP-прокси клиент должен сначала отправить простой HTTP CONNECT
запрос, прочитать простой HTTP-ответ с сервера и проверить его на успешное выполнение, и только после этого можно начинать с рукопожатия TLS.Такая ситуация может возникнуть, например, если вы используете более старую версию LWP , так как между 6.00 и 6.06 прокси поддержка HTTPS была нарушена.