SSL server refusing connection : ECONNREFUSED

Manish Jain invalid.pointer at gmail.com
Thu Nov 17 06:00:10 UTC 2011


Hello,

I am new to openssl and trying to create a demo client and server which 
use SSL v3. But the server, for some reason I cannot figure out, always 
refuses connections with the client reporting errno as ECONNREFUSED.

Can somebody please help me out with what might be the problem ? 
Relevant portions of sources for server and client are available below.

Thank you &
Regards
Manish Jain
invalid.pointer at gmail.com

//server
     SSL_METHOD * lpmethod = SSLv3_method();
     SSL_CTX * lpctx = SSL_CTX_new(lpmethod);

     int result = SSL_CTX_use_certificate_chain_file(lpctx, CERT_FILE);
     assert(result > 0);

     result = SSL_CTX_use_PrivateKey_file(lpctx, KEY_FILE, 
SSL_FILETYPE_PEM);
     assert(result > 0);

     result = SSL_CTX_check_private_key(lpctx);
     assert(result != 0);

     sockaddr_in addr;

     int sock = socket(AF_INET, SOCK_STREAM, 0);
     sockaddr_in sin;
     int val = 1;

     memset((char *)&addr, 0, sizeof(addr));
     addr.sin_addr.s_addr=INADDR_ANY;
     addr.sin_family = AF_INET;
     addr.sin_port = htons(PORT);
     setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val));

     bind(sock, (sockaddr *) &sin, sizeof(sin));
     result = listen(sock,5);
     std::cout << "listen returned " << result << std::endl;

     int new_sock = accept(sock, 0, 0);

//client :
     SSL_library_init();
     SSL_load_error_strings();

     SSL_METHOD * lpmethod = SSLv3_method();
     SSL_CTX * lpctx = SSL_CTX_new(lpmethod);

     int result = SSL_CTX_use_certificate_chain_file(lpctx, CERT_FILE);
     assert(result > 0);

     result = SSL_CTX_use_PrivateKey_file(lpctx, KEY_FILE, 
SSL_FILETYPE_PEM);
     assert(result > 0);

     result = SSL_CTX_check_private_key(lpctx);
     assert(result != 0);

     SSL_CTX_set_verify(lpctx, SSL_VERIFY_PEER, 0);

     sockaddr_in addr;

     memset((char *) &addr, 0, sizeof(addr));
     addr.sin_addr.s_addr = inet_addr("127.0.0.1");
     addr.sin_family = AF_INET;
     addr.sin_port = htons(8888);

     int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
     assert(sock > 0);

     result = connect(sock, (struct sockaddr *)&addr, sizeof(addr));




More information about the freebsd-questions mailing list