Я разрабатываю клиент и сервер Threaded на C++, но мне приходится сталкиваться с проблемами с интеграцией OpenSSL/TLS.Случайные сбои случайных транзакций на SSL_accept
До сих пор я следил за ThriftServer.cpp и ThriftClient.cpp, но получаю случайные ошибки, которые вызывают крушение моего приложения. В частности, сбой происходит, когда клиент пытается вызвать определенный интерфейс бережливости на сервере (уже живет)
/* server init with PEM public/private certificates
* and trusted certificates, socketFactory->accept(true),
* transport->open() */
myServer->start(); //running on separated thread, calling thriftserver->serve();
/* client init with PEM public/private certificates
* and trusted certificates, socketFactory->accept(true),
* transport->open() */
myClient->beginSession(); //Thrift API call - crash
Авария действительно является родовой: иногда это дает мне
TConnectedClient died: SSL_accept: error 0
и иногда
TConnectedClient died: SSL_accept: parse tlsext
и оба конца с SIGSEV.
Я бег Debian 8.1 x64 с последним OpenSSL 1.0.2d, составленным из источников и флага включить-tlsext, бережливость из GitHub/багажника и Libevent из GitHub/багажника.
Я пробовал свои собственные собственные сертификаты и сертификаты тестирования погруженные с бережливости: в обоих случаях он не работает, но они работают с OpenSSL s_client и OpenSSL s_server
Любые идея о причине этих ошибок?
EDIT
Я составил OpenSSL с поддержкой потоков (нитей флага на ./configure), и теперь мое приложение всегда вызывает ошибку
SSL_shutdown: broken pipe
, когда клиент пытается связаться с сервером , Рытье больше деталей, OpenSSL s_client запускает
sslv3 alert handshake failure
использованием TLSv1.2 в качестве протокола. Я проверил this other Stackoverflow вопрос, но это не помогло, до тех пор, как я использую последнюю версию OpenSSL снимок уже
* «Любая идея о причине этих ошибок?» * - вы установили многопоточные замки OpenSSL,? – jww
Привет, У меня была ошибка SSL_shutdown: broken pipe, попробуйте вызвать transport-> close() в клиенте, когда вызов завершен. – KLiFF