Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 4

Сокет OpenSSL (v1.1.1c) на TLS v1.3 ошибка рукопожатия

26.03.2020, 21:23. Показов 1484. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья пишу на чистых Сях под юникс, но тема ближе в сетям, поэтому ближе в эту ветку.
В целом язык вообще мало важен.
Вводные данные:
Имеется TCP клиент на чистом сокете в линукс, на котором, слоем выше должен быть SSL, а в нем, мягко пролитая заголовки HTTPs есть Websocket, ..который в себе несет гигабайты JSON-а. И все тут было прекрасно и в целом SSL вообще нафиг не упал в конкретном случае - так как данные в downstrem и такие же секретные как радио маяк но реализация со стороны серверов,куда подключается клиент, требует.
Тело клиента в без обработки ошибок в суровой выжимке:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
    //..представляет из себя TCP
    int s = socket(AF_INET, SOCK_STREAM, 0);
    hostent *host = gethostbyname(WSHOST); 
    struct sockaddr_in sa;
 
    sa.sin_family = AF_INET;
    sa.sin_addr.s_addr = ((in_addr*)host->h_addr_list[0])->s_addr; 
    sa.sin_port = htons(443); //https, bro
    socklen_t socklen = sizeof (sa);
    if (connect(s, (struct sockaddr *) &sa, socklen)) {
        fprintf(stderr, "Капитан, мы сели на миль\n");
        close(s);
        return NULL;
    }
 
    //и SSL.. (OpenSSL 1.1.1c FIPS  28 May 2019)
 
    SSL_library_init();
    SSLeay_add_ssl_algorithms();
    SSL_load_error_strings();
 
    //.. создаем контекст для ссл, отдельный
 
    SSL_CTX *ctx = SSL_CTX_new ( TLS_client_method() ); 
    SSL_CTX_set_ciphersuites(ctx,"TLS_AES_256_GCM_SHA384"); //проблемный чипер. 
    SSL_CTX_set_min_proto_version(ctx,0); //самая нижняя доступная для всего остального
    SSL_CTX_set_max_proto_version(ctx,0);//TLS1_3_VERSION для моей версии библиотеки
    
    //далее сам ссл
 
    SSL *ssl = SSL_new(ctx);
    SSL_set_options(ssl,SSL_OP_NO_COMPRESSION ); //SSL_OP_TLS_ROLLBACK_BUG|SSL_OP_LEGACY_SERVER_CONNECT|SSL_OP_NO_COMPRESSION
    
    //связываем с сокетом
 
   SSL_set_fd(ssl, s);
   
    // и вот тут приплыли .. сама проблема 
 
    int err = SSL_connect(ssl);
    if (err <= 0) log_ssl((char*)"SSL INFO: ");

Проблема следующая:

Добавлено через 18 минут
Библиотека в переводе на более менее человеческий язык гласит что чипер не был выбран. И при рукопожатии произошла ошибка:

Error creating SSL connection. error[ffffffff], Chiper[(NONE)]
SSL INFO: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure

При полном отсутствии знания КАК отлаживать SSL. Вопрос первый и самый очевидный - что нужно сделать что бы понять
в развернутом виде что значит эта ошибка и на каком этапе хендшейка она происходит?

Добавлено через 23 минуты
Я извиняюсь за "черновой" формат сообщения. Оно было случайно отправлено в процессе набора и, после публикации, обнаружилось, что его невозможно отредактировать по прошествии более пяти минут.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2020, 21:23
Ответы с готовыми решениями:

WebSocket, код 200 - ошибка рукопожатия
Установлен Ratchet (Composer) Порт 8080 создан и открыт Настроен Nginx: server { location / { proxy_pass...

Ошибка TLS
Здравствуйте. Решил изучать интернет :) Не понимаю в чем проблема, вычитал на сайте что проблема в OpenSSL и версия не сходится. Но...

Ошибка ftp_login(): Could not initialize TLS connection in Open Server
Здравствуйте. Сделал на локальном сервере сайт и облачное хранилище. Версия php 7.0. Используя функцию ftp_connect() для создания...

1
0 / 0 / 0
Регистрация: 26.03.2020
Сообщений: 4
27.03.2020, 06:41  [ТС]
Нашел свою ошибку! Отвечаю на свой вопрос, отлаживать процессы удобно как ни странно с помощью утилиты openSSL

Но интуиция не помешает.

Формат выдаваемой библиотекой ошибки очень общий и этот номер может означать целую массу источников неприятности. В моем, конкретном, случае "виновато" расширение протокола Tls, присущее версии 1.3, - SNI (Server Name Indication).
Функции этого расширения, по сути, требуют передачи серверу его DNS имени на моменте рукопожатия, с целью дать возможность держать на одном ip адресе и порту несколько сертификатов.
В момент хендшейка включенный SNI просит передачи hostname сервера куда вы обращаетесь. О чем необходимо позаботится в своем коде. Кконкретно, если вы работаете с openssl,- установить необходимую настройку с данным ссл с помощью SSL_set_tlsext_host_name(ssl, psz_host). Естественно до вызова SSL_connect();

Спасибо за внимание
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2020, 06:41
Помогаю со студенческими работами здесь

Ошибка: не удалось создать защищенный канал ssl tls
Создали сертификат на одной машине. Установил на другую в Личные. Приложением пытаемся подрубиться к скачке XML файла - возникает ошибка:...

Факториал и рукопожатия =)
При встрече 12 друзей обменялись рукопожатиями. Сколько всего произошло рукопожатий?? Я знаю, что задача решается при помощи формулы...

File_get_contents https ошибка openssl
Не хочет работать с https, в интернете искал инфу, там пишет что нужно подключить php_openssl.dll. Но как его подключить? Там примеры...

Ошибка при установке Crypt-OpenSSL-Random-0.15
Добрый день, пытаюсь установить на Ubuntu Server 16.04 imapsync и на этапе установки Crypt-OpenSSL-Random-0.15 вылетает ошибка sudo...

OpenSSL ошибка bad magic number при расшифровке AES-256-CBC
У меня есть файл file.bin с вот таким содержимым: —рSu©€њqCQb8?x¶8чm оYЋxй%“+ЛД‚!њеЪГ.MxР+&gt;XИ§шч И есть ключ: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru