我正在开发一个客户端和一个C++的Threaded服务器,但是我面临着OpenSSL/TLS集成的问题。SSL_accept的节俭随机崩溃
到目前为止,我已经遵循了ThriftServer.cpp和ThriftClient.cpp,但是我收到了导致应用程序崩溃的随机错误。有时它给了我
TConnectedClient died: SSL_accept: error 0
有时
: 具体而言,当一个客户端尝试调用服务器(已经生活)/* 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: parse tlsext
并且都以SIGSEV结尾。
我运行一个Debian 8.1 x64的从来源和标志编译的最新的OpenSSL 1.0.2d 使-tlsext,从GitHub /躯干和libevent的从GitHub /主干节俭。
我已经尽我的自定义自签名的证书,并随节俭的检测证书:在这两种情况下,这是行不通的,但它们与的OpenSSL的s_client.First和OpenSSL的s_server
任何工作关于这些错误的原因的想法?
编辑
我编译的OpenSSL与线程支持(上的./configure线程标志),现在我的应用程序始终触发错误
SSL_shutdown: broken pipe
当客户端试图联系服务器
。挖掘更多细节,openssl s_client触发使用TLSv1.2作为协议的一个
sslv3 alert handshake failure
。我检查了this other Stackoverflow的问题,但它没有帮助,只要我已经使用最新的OpenSSL快照
*“知不知道有关这些错误的原因是什么?” * - 你安装OpenSSL的多线程锁吗? – jww
嗨,我有'SSL_shutdown:断管'错误,尝试呼叫完成时调用客户端中的transport-> close()。 – KLiFF