我需要在C++中使用gsoap庫,我需要使用https。文檔說明如何在C中使用HTTPS,但不使用C++(http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc19.20)。特別是,我有soap_ssl_init();
函數的計算錯誤。我查看了/ usr/lib/libgsoap *文件並找到了ligsoapssl ++。文件並與之鏈接。這個錯誤已經消失了,但是我得到了error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
。這意味着我需要調用soap_ssl_client_context
func,但在C++生成的類中沒有。我該怎麼辦?如何在C++ gSOAP中使用SSL生成的類
UPD:我自己解決了這個問題。但它古怪,非常古怪的方式。 gSOAP的生成從結構皁繼承C++類,它包含以下ATTRS:
BIO *bio;
SSL *ssl;
SSL_CTX *ctx;
unsigned short ssl_flags;
const char *keyfile;
const char *password;
const char *dhfile;
const char *cafile;
const char *capath;
const char *crlfile;
const char *randfile;
SSL_SESSION *session;
所以我們可以設置必要ATTRS(標誌,則params),如由我們自己OpenSSL庫。在簡單情況下,撥打soap_ssl_init()
一次並設置ssl_flags = SOAP_SSL_NO_AUTHENTICATION
就足夠了。這個對我有用。如果有人知道更好的方式,我會很高興看到。
什麼是錯誤你得到:
其中m_proxy是客戶端代理的實例使用gSOAP的產生? – Mat 2011-06-11 12:50:54
'soap_ssl_init undefined reference'。我查看了/ usr/lib/libgsoap *文件並找到了ligsoapssl ++。文件並與之鏈接。這個錯誤已經消失了,但是我得到錯誤:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:證書驗證失敗。這意味着我需要調用'soap_ssl_client_context' func,但是沒有C++生成的類。我該怎麼辦? – milo 2011-06-11 13:21:55