diff --git a/lib/tls/mbedtls/mbedtls-client.c b/lib/tls/mbedtls/mbedtls-client.c index e396f17b8..6e790ca21 100644 --- a/lib/tls/mbedtls/mbedtls-client.c +++ b/lib/tls/mbedtls/mbedtls-client.c @@ -379,7 +379,7 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh, ) { X509 *d2i_X509(X509 **cert, const unsigned char **buffer, long len); - SSL_METHOD *method = (SSL_METHOD *)TLS_client_method(); + SSL_METHOD *method; unsigned long error; int n; @@ -389,6 +389,16 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh, lws_tls_session_cache(vh, info->tls_session_timeout); #endif +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) + method = (SSL_METHOD *)TLSv1_2_client_method(); +#elif defined(MBEDTLS_SSL_PROTO_TLS1_1) + method = (SSL_METHOD *)TLSv1_1_client_method(); +#elif defined(MBEDTLS_SSL_PROTO_TLS1) + method = (SSL_METHOD *)TLSv1_client_method(); +#else + method = (SSL_METHOD *)TLS_client_method(); +#endif + if (!method) { error = (unsigned long)ERR_get_error(); lwsl_err("problem creating ssl method %lu: %s\n",