Получить ошибку SSL SSL_ERROR_RX_RECORD_TOO_LONG на стороне сервера - PullRequest
0 голосов
/ 01 января 2019

Я написал свой собственный веб-сервер на C #.

И я всегда устанавливал SSL-сертификаты для своих сайтов на новом IP-адресе через порт 443. И всегда он работает нормально.

Но на этот раз яполучить эту ошибку:

Ошибка безопасного соединения

Произошла ошибка при подключении к www.sayehrooshan-co.com.SSL получил запись, превышающую максимально допустимую длину.Код ошибки:

SSL_ERROR_RX_RECORD_TOO_LONG

Невозможно отобразить страницу, которую вы пытаетесь просмотреть, поскольку не удалось проверить подлинность полученных данных.Пожалуйста, свяжитесь с владельцами сайта, чтобы сообщить им об этой проблеме.

это адрес страницы:

https://www.sayehrooshan -co.com

мой код всегда работал с файлом .pfx для других сайтов:

sslstream = new SslStream(new NetworkStream(mySocket, false), false);
//commented for nedaye arzhang
X509Certificate2 serverCertificate = new X509Certificate2(Path, Password);
//X509Certificate2 serverCertificate = new X509Certificate2("www_nedaye-arzhang_com.cer");                           

sslstream.AuthenticateAsServer(serverCertificate, false, System.Security.Authentication.SslProtocols.Tls, true);

много искал, но не нашел решения Кто-нибудь понял?

Ответы [ 2 ]

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

Сервер не работает.Попытка с openssl s_client показывает, что квитирование TLS выполнено успешно и сертификат в порядке, но что он разрывается позже в процессе связи:

$ openssl s_client -connect www.sayehrooshan-co.com:443 -servername www.sayehrooshan-co.com -crlf
CONNECTED(00000003)
...
SSL-Session:
    Protocol  : TLSv1
    Cipher    : ECDHE-RSA-AES256-SHA
    ...
    Verify return code: 0 (ok)
---
GET / HTTP/1.1
Host: www.sayehrooshan-co.com

140040623380160:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:365:

Выполняя захват пакета во время эксперимента, можно увидеть, что серверотправляет обычный текст по соединению TLS:

> various TLS encrypted stuff from client (likely HTTP request) ....
< followed by sudden plain text from the server:
   Cannot find table 0.

   at System.Data.DataTableCollection.get_Item(Int32 index)
   at MyWebServerNamespace.MyWebServer.SetTableRowValue(DataSet& ds, String type, String name, String value) in D:\iteration source - table 13 removed\MyWebServer\MyWebServer.cs:line 4024
   at MyWebServerNamespace.MyWebServer.LoadCmsValues(Content cms, Ssl sslClass, DataSet& Ds, DataTable& fileDt, Socket& mySocket, Byte[]& contentBytes, Boolean& showCmsError) in D:\iteration source - table 13 removed\MyWebServer\MyWebServer.cs:line 1761
   at MyWebServerNamespace.MyWebServer.HandleTcpRequest(Object state) in D:\iteration source - table 13 removed\MyWebServer\MyWebServer.cs:line 1027
LoadCmsValues enter

Клиент попытается интерпретировать это простое текстовое сообщение как запись TLS.Это означает, что он будет анализировать начальные байты и извлекать версию протокола TLS и длину полезной нагрузки.Учитывая, что это не TLS-запись, все эти значения будут мусором.В зависимости от фактической реализации стека TLS в клиенте это приведет к сообщениям об ошибках, таким как "неправильный номер версии" (заявленная версия протокола TLS не поддерживается) или "SSL_ERROR_RX_RECORD_TOO_LONG" (указанная длина полезной нагрузки не является фактической длиной полезной нагрузки) или более общим "ERR_SSL_PROTOCOL_ERROR" или подобным.

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

Это не просто C #, Firefox показывает то же сообщение об ошибке.

"Код ошибки: ssl_error_rx_record_too_long. Обычно это означает, что реализация SSL на вашем сервере неверна. Ошибка обычно вызывается серверомпобочная проблема, которую администратор сервера должен будет изучить. "

Источник

Другая страница, на которой обсуждается эта проблема

Firefox:

enter image description here

Хром

enter image description here

IE

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...