c server openssl client

bio_do_connect() devuelve-1



server openssl (0)

Estoy tratando de programar una aplicación servidor / cliente como la figura a continuación.

El issueTicket.cgi es un archivo ejecutable escrito en C. Mi colega configuró el apache y programó el issueTicket.cgi, y puedo acceder al issueTicket.cgi escribiendo http: // [ubuntuIP] /cgi-bin/SEC_IssueTicket.cgi en mi navegador

El problema radica en el lado del cliente. Tengo que programar un askTicket.exe en Windows usando Openssl, y BIO_do_connect () siempre devuelve -1. El siguiente es mi código.

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

¿Alguien puede decir dónde está mi problema?