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?