我正在開發一個客戶端和一個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