|
|
|
@ -329,21 +329,28 @@ int net__tls_server_ctx(struct mosquitto__listener *listener)
|
|
|
|
|
return MOSQ_ERR_TLS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef SSL_OP_NO_TLSv1_3
|
|
|
|
|
if(db.config->per_listener_settings){
|
|
|
|
|
if(listener->security_options.psk_file){
|
|
|
|
|
SSL_CTX_set_options(listener->ssl_ctx, SSL_OP_NO_TLSv1_3);
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
if(db.config->security_options.psk_file){
|
|
|
|
|
SSL_CTX_set_options(listener->ssl_ctx, SSL_OP_NO_TLSv1_3);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
if(listener->tls_version == NULL){
|
|
|
|
|
SSL_CTX_set_options(listener->ssl_ctx, SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1);
|
|
|
|
|
#ifdef SSL_OP_NO_TLSv1_3
|
|
|
|
|
}else if(!strcmp(listener->tls_version, "tlsv1.3")){
|
|
|
|
|
SSL_CTX_set_options(listener->ssl_ctx, SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1 | SSL_OP_NO_TLSv1_2);
|
|
|
|
|
#endif
|
|
|
|
|
}else if(!strcmp(listener->tls_version, "tlsv1.2")){
|
|
|
|
|
SSL_CTX_set_options(listener->ssl_ctx, SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1);
|
|
|
|
|
}else if(!strcmp(listener->tls_version, "tlsv1.1")){
|
|
|
|
|
SSL_CTX_set_options(listener->ssl_ctx, SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1);
|
|
|
|
|
#else
|
|
|
|
|
}else if(!strcmp(listener->tls_version, "tlsv1.2")){
|
|
|
|
|
SSL_CTX_set_options(listener->ssl_ctx, SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1);
|
|
|
|
|
}else if(!strcmp(listener->tls_version, "tlsv1.1")){
|
|
|
|
|
SSL_CTX_set_options(listener->ssl_ctx, SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1);
|
|
|
|
|
#endif
|
|
|
|
|
}else{
|
|
|
|
|
log__printf(NULL, MOSQ_LOG_ERR, "Error: Unsupported tls_version \"%s\".", listener->tls_version);
|
|
|
|
|
return MOSQ_ERR_TLS;
|
|
|
|
@ -903,8 +910,8 @@ int net__socket_listen(struct mosquitto__listener *listener)
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
# endif /* FINAL_WITH_TLS_PSK */
|
|
|
|
|
}
|
|
|
|
|
# endif /* FINAL_WITH_TLS_PSK */
|
|
|
|
|
#endif /* WITH_TLS */
|
|
|
|
|
return 0;
|
|
|
|
|
}else{
|
|
|
|
|