diff options
author | Anirudh Mangipudi <anirudh.mangipudi@oracle.com> | 2014-01-08 18:31:42 +0530 |
---|---|---|
committer | Anirudh Mangipudi <anirudh.mangipudi@oracle.com> | 2014-01-08 18:31:42 +0530 |
commit | 14be19518703542a6934c28536421d47ff08ec09 (patch) | |
tree | 2892d634e2ed957b7deeb69d3deab151678972c5 /extra/yassl/src/handshake.cpp | |
parent | 1ef8ed17f1b8547eed41f94edc73ca9b9c9dd2ea (diff) | |
download | mariadb-git-14be19518703542a6934c28536421d47ff08ec09.tar.gz |
Bug#16715064 MYSQL COMMUNITY UTILITIES CANNOT CONNECT TO MYSQL ENTERPRISE
WITH SSL ENABLED
Problem:
It was reported that MySQL community utilities cannot connect to a MySQL
Enterprise 5.6.x server with SSL configured. We can reproduce the issue
when we try to connect an MySQL Enterprise Server with a MySQL Client with
--ssl-ca parameter enabled.
We get an ERROR 2026 (HY000): SSL connection error: unknown error number.
Solution:
The root cause of the problem was determined to be the difference in handling
of the certificates by OpenSSL(Enterprise) and yaSSL(Community). OpenSSL expects
a blank certificate to be sent when a parameter (ssl-ca, or ssl-cert or ssl-key)
has not been specified.On the other hand yaSSL doesn't send any certificate and
since OpenSSL does not expect this behaviour it returns an Unknown SSL error.
The issue was resolved by yaSSL adding capability to send blank certificate when
any of the parameter is missing.
Diffstat (limited to 'extra/yassl/src/handshake.cpp')
-rw-r--r-- | extra/yassl/src/handshake.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/extra/yassl/src/handshake.cpp b/extra/yassl/src/handshake.cpp index d99adf88ce9..058f8596546 100644 --- a/extra/yassl/src/handshake.cpp +++ b/extra/yassl/src/handshake.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1159,6 +1159,8 @@ void sendCertificateVerify(SSL& ssl, BufferOutput buffer) { if (ssl.GetError()) return; + if(ssl.getCrypto().get_certManager().sendBlankCert()) return; + CertificateVerify verify; verify.Build(ssl); RecordLayerHeader rlHeader; |