title: libwebsocket server with openSSL not accepting connection
body: <p>I have written web socket server with the help of (libwebsocket library )which accepts web socket client connection for non SSL.
  Now I wanted it to accept SSL connection so I have generated the self signed certificate and key, while creating web socket context I have given the key and certificate path  and option LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT as well.
  But while making https connection  using wss://ip:7681 from I am getting connection request callback i.e LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED and after that LWS_CALLBACK_WSI_DESTROY and in browser getting console error about not able to connect.</p>
  
  <pre><code>  Firefox can’t establish a connection to the server at wss://192.168.4.254:7681/.    
  </code></pre>
  
  <p>Please check the following server side code used for creating openSSL based web socket server.</p>
  
  <pre><code>struct lws_protocols WebSocketCommon::protocols[ 2 ] = { {"wss", WebSocketCommon::callback, 0,    0 },{ NULL, NULL, 0, 0 } };
  
  int callback ( struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len ) {
     switch ( reason ) {
  
      case LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED:
      {
           //code 
           break;      
      }
      case LWS_CALLBACK_WSI_DESTROY: 
      {
           //code 
           break;
      }  
      case LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS: {
          Log::d( m_r_logger, TAG, "LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS\n");
          SSL_CTX_load_verify_locations( (SSL_CTX*) user, NULL, getenv(SSL_CERT_FILE_PATH) );
          break;
      }
          default: {
              break;
      }
  }
  
  return lws_callback_http_dummy(wsi, reason, user, in, len);
  } 
  
  void createContext (bool useSSL) {
      struct lws_context_creation_info info;
      memset( &amp;info, 0, sizeof(struct lws_context_creation_info) );
  
      info.port = 7681;
      info.uid = -1;
      info.gid = -1;
      info.protocols = protocols;
      info.mounts = &amp;mount;
  
      info.extensions = exts;
      info.timeout_secs = 5;
      info.ip_limit_ah = 24; /* for testing */
      info.ip_limit_wsi = 400; /* for testing */
  
      // Following options for openSSL certificate
      if(useSSL){
          info.options = LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT | LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT | LWS_SERVER_OPTION_DISABLE_IPV6 | LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED | LWS_SERVER_OPTION_IGNORE_MISSING_CERT;
          info.ssl_cert_filepath = SSL_CERT_FILE_PATH;
          info.ssl_private_key_filepath = SSL_PRIVATE_KEY_PATH;
      }
      fContext = lws_create_context( &amp;info );
  
      }
  </code></pre>
  
  <p>I am getting following logs while creating web socket context and accepting wss connection.</p>
  
  <pre><code>WebSocket.cpp:638...... :createContext ( ) - begin
  WebSocket.cpp:640...... : createContext - fReferenceCount = 0
  WebSocket.cpp:324...... : Creating Vhost 'default' port 7681, 1 protocols, IPv6 off
  WebSocket.cpp:324...... :  Using SSL mode
  WebSocket.cpp:324...... :  SSL ECDH curve 'prime256v1'
  WebSocket.cpp:612...... : LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS
  WebSocket.cpp:324...... : lws_tls_client_create_vhost_context: doing cert filepath /etc/nginx  /ssl/mycert.crt
  WebSocket.cpp:324...... : Loaded client cert /etc/nginx/ssl/mycert.crt
  WebSocket.cpp:324...... : lws_tls_client_create_vhost_context: doing private key filepath
  WebSocket.cpp:324...... : Loaded client cert private key /etc/nginx/ssl/mykey.key
  WebSocket.cpp:324...... : created client ssl context for default
  WebSocket.cpp:684...... : lws_create_context SUCCEEDED
  WebSocket.cpp:759...... : start  Starting Service Thread.
  WebSocket.cpp:705...... : createContext - fReferenceCount = 1 
  WebSocket.cpp:706...... : createContext - end
  </code></pre>
  
  <p>Following is library versions I am using.</p>
  
  <pre><code>libwebsocket.so 13
  OpenSSL 1.0.2o  27 Mar 2018
  </code></pre>
  
  <p>Please let me know what is going wrong ?</p>