forked from mysql/mysql-server
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug#21920657: SSL-CA FAILS SILENTLY IF THE PATH CANNOT BE
FOUND Description:- Failure during the validation of CA certificate path which is provided as an option for 'ssl-ca' returns two different errors for YaSSL and OPENSSL. Analysis:- 'ssl-ca', option used for specifying the ssl ca certificate path. Failing to validate this certificate with OPENSSL returns an error, "ERROR 2026 (HY000): SSL connection error: SSL_CTX_set_default_verify_paths failed". While YASSL returns "ERROR 2026 (HY000): SSL connection error: ASN: bad other signature confirmation". Error returned by the OPENSSL is correct since "SSL_CTX_load_verify_locations()" returns 0 (in case of OPENSSL) for the failure and sets error as "SSL_INITERR_BAD_PATHS". In case of YASSL, "SSL_CTX_load_verify_locations()" returns an error number which is less than or equal to 0 in case of error. Error numbers for YASSL is mentioned in the file, 'extra/yassl/include/openssl/ssl.h'(line no : 292). Also 'ssl-ca' does not accept tilde home directory path substitution. Fix:- The condition which checks for the error in the "SSL_CTX_load_verify_locations()" is changed in order to accommodate YASSL as well. A logic is written in "mysql_ssl_set()" in order accept the tilde home directory path substitution for all ssl options.
- Loading branch information
Arun Kuruvila
committed
Mar 1, 2016
1 parent
96f680a
commit c7e6860
Showing
4 changed files
with
80 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# | ||
# Bug#21920657: SSL-CA FAILS SILENTLY IF THE PATH CANNOT BE FOUND | ||
# | ||
# try to connect with wrong '--ssl-ca' path : should fail | ||
ERROR 2026 (HY000): SSL connection error: SSL_CTX_set_default_verify_paths failed | ||
# try to connect with correct '--ssl-ca' path : should connect | ||
Variable_name Value | ||
Ssl_cipher DHE-RSA-AES256-SHA | ||
# | ||
# Bug#21920678: SSL-CA DOES NOT ACCEPT ~USER TILDE HOME DIRECTORY | ||
# PATH SUBSTITUTION | ||
# | ||
# try to connect with '--ssl-ca' option using tilde home directoy | ||
# path substitution : should connect | ||
Variable_name Value | ||
Ssl_cipher DHE-RSA-AES256-SHA | ||
# try to connect with '--ssl-key' option using tilde home directoy | ||
# path substitution : should connect | ||
Variable_name Value | ||
Ssl_cipher DHE-RSA-AES256-SHA | ||
# try to connect with '--ssl-cert' option using tilde home directoy | ||
# path substitution : should connect | ||
Variable_name Value | ||
Ssl_cipher DHE-RSA-AES256-SHA |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
--source include/have_ssl.inc | ||
--source include/not_embedded.inc | ||
|
||
--echo # | ||
--echo # Bug#21920657: SSL-CA FAILS SILENTLY IF THE PATH CANNOT BE FOUND | ||
--echo # | ||
|
||
--echo # try to connect with wrong '--ssl-ca' path : should fail | ||
--error 1 | ||
--exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/wrong-cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'" 2>&1 | ||
|
||
--echo # try to connect with correct '--ssl-ca' path : should connect | ||
--exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'" | ||
|
||
--echo # | ||
--echo # Bug#21920678: SSL-CA DOES NOT ACCEPT ~USER TILDE HOME DIRECTORY | ||
--echo # PATH SUBSTITUTION | ||
--echo # | ||
|
||
--let $mysql_test_dir_path= `SELECT REPLACE('$MYSQL_TEST_DIR', '$HOME', '~')` | ||
|
||
--echo # try to connect with '--ssl-ca' option using tilde home directoy | ||
--echo # path substitution : should connect | ||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR | ||
--exec $MYSQL --ssl-ca=$mysql_test_dir_path/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'" | ||
|
||
--echo # try to connect with '--ssl-key' option using tilde home directoy | ||
--echo # path substitution : should connect | ||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR | ||
--exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$mysql_test_dir_path/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'" | ||
|
||
--echo # try to connect with '--ssl-cert' option using tilde home directoy | ||
--echo # path substitution : should connect | ||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR | ||
--exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$mysql_test_dir_path/std_data/client-cert.pem test -e "SHOW STATUS LIKE 'Ssl_cipher'" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters