mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
f8866f8f66
Initial support tested against OpenSSL 1.0.1, 1.0.2, 1.1.0, Yassl and LibreSSL not working on Windows with native SChannel support, due to wrong cipher mapping: Latter one requires push of CONC-241 fixes. Please note that OpenSSL 0.9.8 and OpenSSL 1.1.0 will not work: Even if the build succeeds, test cases will fail with various errors, especially when using different tls libraries or versions for client and server.
35 lines
1.6 KiB
Text
35 lines
1.6 KiB
Text
#
|
|
# MDEV-7937: Enforce SSL when --ssl client option is used
|
|
#
|
|
|
|
source include/have_ssl_crypto_functs.inc;
|
|
|
|
# create a procedure instead of SHOW STATUS LIKE 'ssl_cipher'
|
|
# because the cipher depends on openssl (or yassl) version,
|
|
# and it's actual value doesn't matter here anyway
|
|
create procedure have_ssl()
|
|
select if(variable_value > '','yes','no') as 'have_ssl'
|
|
from information_schema.session_status
|
|
where variable_name='ssl_cipher';
|
|
|
|
--disable_abort_on_error
|
|
--echo mysql --ssl-ca=cacert.pem -e "call test.have_ssl()"
|
|
--exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem -e "call test.have_ssl()" 2>&1
|
|
--echo mysql --ssl -e "call test.have_ssl()"
|
|
--exec $MYSQL --ssl -e "call test.have_ssl()" 2>&1
|
|
--echo mysql --ssl-ca=cacert.pem --ssl-verify-server-cert -e "call test.have_ssl()"
|
|
--exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-verify-server-cert -e "call test.have_ssl()" 2>&1
|
|
|
|
--echo mysql --ssl --ssl-verify-server-cert -e "call test.have_ssl()"
|
|
# this is the test where certificate verification fails.
|
|
# but yassl doesn't support certificate verification, so
|
|
# we fake the test result for yassl
|
|
let yassl=`select variable_value='Unknown' from information_schema.session_status where variable_name='Ssl_session_cache_mode'`;
|
|
if (!$yassl) {
|
|
--replace_result "self signed certificate in certificate chain" "Failed to verify the server certificate" "Error in the certificate." "Failed to verify the server certificate"
|
|
--exec $MYSQL --ssl --ssl-verify-server-cert -e "call test.have_ssl()" 2>&1
|
|
}
|
|
if ($yassl) {
|
|
--echo ERROR 2026 (HY000): SSL connection error: Failed to verify the server certificate
|
|
}
|
|
drop procedure have_ssl;
|