bio_do_connect()返回-1

时间:2016-07-11 07:12:04

标签: c server openssl client

我正在尝试编写服务器/客户端应用程序,如下图所示。 enter image description here

issueTicket.cgi是用C编写的可执行文件。 我的同事设置了apache并编写了issueTicket.cgi编程,我可以通过在浏览器中输入 http://[ubuntuIP]/cgi-bin/SEC_IssueTicket.cgi 来访问issueTicket.cgi。

问题在于客户端。我必须使用Openssl在Windows上编写一个askTicket.exe,并且BIO_do_connect()始终返回-1。以下是我的代码。

SSL_load_error_strings();
ERR_load_BIO_strings();
SSL_library_init();     /* Return value is always 1 */
OpenSSL_add_all_algorithms();
...
*sslCtx = SSL_CTX_new(TLSv1_1_client_method());
sslRet = SSL_CTX_load_verify_locations(*sslCtx, (const char *)certpath, NULL);
*sbio = BIO_new_ssl_connect(*sslCtx);
BIO_set_conn_hostname(*sbio, "[ubuntuIP]:80/cgi-bin/issueTicket.cgi");
BIO_set_nbio(*sbio, 1);
BIO_get_ssl(*sbio, &ssl);
SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);
BIO_do_connect(*sbio) // always return -1

任何人都可以告诉我的问题在哪里吗?

0 个答案:

没有答案