Skip to content

Commit b449e46

Browse files
amitabnmariz
authored andcommitted
BUG25397650: Verify server certificate only if ssl_verify_cert is True
Setting ssl_verify_cert to False in CExt had no effect. If ssl_verify_cert is set to false, we don't pass the CA certificate to the C API, since passing CA certificate causes auto verification of the server certificate. Also, the CExt now throws InterfaceError instead of DatabaseError if server certificate verification failed to keep behaviour consistent with the Pure python connector. Tests added for regression.
1 parent 7b83be5 commit b449e46

14 files changed

+507
-157
lines changed

lib/mysql/connector/errors.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# MySQL Connector/Python - MySQL driver written in Python.
2-
# Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved.
33

44
# MySQL Connector/Python is licensed under the terms of the GPLv2
55
# <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
@@ -301,4 +301,5 @@ class MySQLFabricError(Error):
301301
2049: NotSupportedError,
302302
2055: OperationalError,
303303
2061: InterfaceError,
304+
2026: InterfaceError,
304305
}

src/mysql_capi.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1153,8 +1153,10 @@ MySQL_connect(MySQL *self, PyObject *args, PyObject *kwds)
11531153
MYSQL_OPT_SSL_VERIFY_SERVER_CERT, (char*)&abool);
11541154
}
11551155
#endif
1156+
mysql_ssl_set(&self->session, ssl_key, ssl_cert, ssl_ca, NULL, NULL);
1157+
} else {
1158+
mysql_ssl_set(&self->session, ssl_key, ssl_cert, NULL, NULL, NULL);
11561159
}
1157-
mysql_ssl_set(&self->session, ssl_key, ssl_cert, ssl_ca, NULL, NULL);
11581160
} else {
11591161
// Make sure to not enforce SSL
11601162
#if MYSQL_VERSION_ID > 50703 && MYSQL_VERSION_ID < 50711

tests/data/ssl/generate.sh

Lines changed: 87 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/sh
22
# MySQL Connector/Python - MySQL driver written in Python.
3-
# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
3+
# Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
44

55
# MySQL Connector/Python is licensed under the terms of the GPLv2
66
# <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
@@ -47,16 +47,58 @@ if [ ! -d $DESTDIR ]; then
4747
exit 2
4848
fi
4949

50+
mkdir -p $DESTDIR/ca.db.certs # Signed certificates storage
51+
touch $DESTDIR/ca.db.index # Index of signed certificates
52+
echo 01 > $DESTDIR/ca.db.serial # Next (sequential) serial number
53+
54+
# Configuration
55+
cat>$DESTDIR/ca.conf<<'EOF'
56+
[ ca ]
57+
default_ca = ca_default
58+
59+
[ ca_default ]
60+
dir = REPLACE_LATER
61+
certs = $dir
62+
new_certs_dir = $dir/ca.db.certs
63+
database = $dir/ca.db.index
64+
serial = $dir/ca.db.serial
65+
RANDFILE = $dir/ca.db.rand
66+
certificate = $dir/ca.crt
67+
private_key = $dir/ca.key
68+
default_days = 365
69+
default_crl_days = 30
70+
default_md = md5
71+
preserve = no
72+
policy = generic_policy
73+
[ generic_policy ]
74+
countryName = optional
75+
stateOrProvinceName = optional
76+
localityName = optional
77+
organizationName = optional
78+
organizationalUnitName = optional
79+
commonName = supplied
80+
emailAddress = optional
81+
EOF
82+
83+
sed -i "s|REPLACE_LATER|$DESTDIR|" $DESTDIR/ca.conf
84+
5085
echo
5186
echo "Generating Root Certificate"
5287
echo
53-
$OPENSSL genrsa 2048 > $DESTDIR/tests_CA_key.pem
88+
$OPENSSL genrsa -out $DESTDIR/tests_CA_key.pem 2048
5489
if [ $? -ne 0 ]; then
5590
exit 3
5691
fi
5792
SUBJ="/OU=$OU Root CA/CN=MyConnPy Root CA"
58-
$OPENSSL req -batch -new -x509 -nodes -days $DAYS -subj "$SUBJ" \
59-
-key $DESTDIR/tests_CA_key.pem -out $DESTDIR/tests_CA_cert.pem
93+
$OPENSSL req -new -key $DESTDIR/tests_CA_key.pem \
94+
-out $DESTDIR/tests_CA_req.csr -subj "$SUBJ"
95+
if [ $? -ne 0 ]; then
96+
exit 3
97+
fi
98+
$OPENSSL x509 -req -days $DAYS \
99+
-in $DESTDIR/tests_CA_req.csr \
100+
-out $DESTDIR/tests_CA_cert.pem \
101+
-signkey $DESTDIR/tests_CA_key.pem
60102
if [ $? -ne 0 ]; then
61103
exit 3
62104
fi
@@ -66,41 +108,64 @@ echo
66108
echo "Generating Server Certificate"
67109
echo
68110
SUBJ="/OU=$OU Server Cert/CN=localhost"
69-
$OPENSSL req -batch -newkey rsa:2048 -days $DAYS -nodes -subj "$SUBJ" \
70-
-keyout $DESTDIR/tests_server_key.pem -out $DESTDIR/tests_server_req.pem
111+
$OPENSSL genrsa -out $DESTDIR/tests_server_key.pem 2048
112+
if [ $? -ne 0 ]; then
113+
exit 3
114+
fi
115+
$OPENSSL req -new -key $DESTDIR/tests_server_key.pem \
116+
-out $DESTDIR/tests_server_req.csr -subj "$SUBJ"
117+
if [ $? -ne 0 ]; then
118+
exit 3
119+
fi
120+
$OPENSSL ca -config $DESTDIR/ca.conf -in $DESTDIR/tests_server_req.csr \
121+
-cert $DESTDIR/tests_CA_cert.pem \
122+
-keyfile $DESTDIR/tests_CA_key.pem \
123+
-out $DESTDIR/tests_server_cert.pem -batch
124+
if [ $? -ne 0 ]; then
125+
exit 3
126+
fi
127+
128+
# MySQL Expired Server Certificate: generate, remove passphrase, sign
129+
echo
130+
echo "Generating Expired Server Certificate"
131+
echo
132+
SUBJ="/OU=$OU Expired Server Cert/CN=localhost"
133+
$OPENSSL genrsa -out $DESTDIR/tests_expired_server_key.pem 2048
71134
if [ $? -ne 0 ]; then
72135
exit 3
73136
fi
74-
$OPENSSL rsa -in $DESTDIR/tests_server_key.pem \
75-
-out $DESTDIR/tests_server_key.pem
137+
$OPENSSL req -new -key $DESTDIR/tests_expired_server_key.pem \
138+
-out $DESTDIR/tests_expired_server_req.csr -subj "$SUBJ"
76139
if [ $? -ne 0 ]; then
77140
exit 3
78141
fi
79-
$OPENSSL x509 -req -in $DESTDIR/tests_server_req.pem -days $DAYS \
80-
-CA $DESTDIR/tests_CA_cert.pem -CAkey $DESTDIR/tests_CA_key.pem \
81-
-set_serial 01 -out $DESTDIR/tests_server_cert.pem
142+
$OPENSSL ca -config $DESTDIR/ca.conf -in $DESTDIR/tests_expired_server_req.csr \
143+
-cert $DESTDIR/tests_CA_cert.pem \
144+
-keyfile $DESTDIR/tests_CA_key.pem \
145+
-out $DESTDIR/tests_expired_server_cert.pem -batch \
146+
-startdate 120815080000Z -enddate 120815090000Z
82147
if [ $? -ne 0 ]; then
83148
exit 3
84149
fi
85150

86-
# MySQL Client Certificate: generate, remove passphase, sign
151+
# MySQL Client Certificate: generate, remove passphrase, sign
87152
echo
88153
echo "Generating Client Certificate"
89154
echo
90155
SUBJ="/OU=$OU Client Cert/CN=localhost"
91-
$OPENSSL req -batch -newkey rsa:2048 -days $DAYS -nodes -subj "$SUBJ" \
92-
-keyout $DESTDIR/tests_client_key.pem -out $DESTDIR/tests_client_req.pem
156+
$OPENSSL genrsa -out $DESTDIR/tests_client_key.pem 2048
93157
if [ $? -ne 0 ]; then
94158
exit 3
95159
fi
96-
$OPENSSL rsa -in $DESTDIR/tests_client_key.pem \
97-
-out $DESTDIR/tests_client_key.pem
160+
$OPENSSL req -new -key $DESTDIR/tests_client_key.pem \
161+
-out $DESTDIR/tests_client_req.csr -subj "$SUBJ"
98162
if [ $? -ne 0 ]; then
99163
exit 3
100164
fi
101-
$OPENSSL x509 -req -in $DESTDIR/tests_client_req.pem -days $DAYS \
102-
-CA $DESTDIR/tests_CA_cert.pem -CAkey $DESTDIR/tests_CA_key.pem \
103-
-set_serial 01 -out $DESTDIR/tests_client_cert.pem
165+
$OPENSSL ca -config $DESTDIR/ca.conf -in $DESTDIR/tests_client_req.csr \
166+
-cert $DESTDIR/tests_CA_cert.pem \
167+
-keyfile $DESTDIR/tests_CA_key.pem \
168+
-out $DESTDIR/tests_client_cert.pem -batch
104169
if [ $? -ne 0 ]; then
105170
exit 3
106171
fi
@@ -109,5 +174,7 @@ fi
109174
echo
110175
echo "Cleaning up"
111176
echo
112-
(cd $DESTDIR; rm tests_server_req.pem tests_client_req.pem)
177+
(cd $DESTDIR; rm -rf tests_server_req.pem tests_client_req.pem \
178+
ca.db.certs ca.db.index* ca.db.serial* ca.conf tests_CA_req.csr \
179+
tests_server_req.csr tests_expired_server_req.csr tests_client_req.csr)
113180

tests/data/ssl/tests_CA_cert.pem

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
-----BEGIN CERTIFICATE-----
2-
MIIDVzCCAj+gAwIBAgIJAIUsZ/vX9kOGMA0GCSqGSIb3DQEBBQUAMEIxJTAjBgNV
3-
BAsMHE15U1FMQ29ubmVjdG9yUHl0aG9uIFJvb3QgQ0ExGTAXBgNVBAMMEE15Q29u
4-
blB5IFJvb3QgQ0EwHhcNMTMwMzI2MTUzNTUyWhcNMjIwNDE0MTUzNTUyWjBCMSUw
5-
IwYDVQQLDBxNeVNRTENvbm5lY3RvclB5dGhvbiBSb290IENBMRkwFwYDVQQDDBBN
6-
eUNvbm5QeSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
7-
qWcX9kD+b8c3hkPtPlIgwTsfGvhm/bJ64RHjCtQc2pi/fv9hlcryor8tWmdCCcw7
8-
ajg5n/QAIJ8crD5D0kheGEnWVI7dyVxZVfT3CiKuS+GBxuQP2ejJi4aDGh2McVv4
9-
aq1dXRqf2YWkM8PUjM0lzUD9MC9S4APtP6ux0TBhz5rv2ZWdg2EAjAl7Q56KM5m6
10-
odpF+Z1ExnfVpNzWnpvlYHJ+GhbVWb2F0NbqBTmz4OLEAxU/O2fo43dwVlHp+yNd
11-
ib2V+VxeeyZmTt1CIeK6DStAiKdNLN5/N/+2FHZ9/XcA6qqxLFLeuTIySlPmuaX6
12-
u2C8tmOWp99TCUL+GZ2iBwIDAQABo1AwTjAdBgNVHQ4EFgQU1objOGh5rgtBTmjK
13-
gPkN6SgXl64wHwYDVR0jBBgwFoAU1objOGh5rgtBTmjKgPkN6SgXl64wDAYDVR0T
14-
BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAWgHZzUo8oGP7YxMn9YACdbipTRYU
15-
IzGF+Cf0ueXktcEDbq7AIa6MsxXTp8pFOObvLiiecrMngYlqfHlYPL2HG+zOLDig
16-
nmkO4pGwTqCDZHO4aYBdiVMlaxSpxMX9R/kFYRP1P4AGLOp66FirNO5iLNlTIjpf
17-
PGebF+k0B1zUSUPsrZfa/d29XcJxBaw7aEOhARQYsymItasnTdcKvjZp1ahGnZYz
18-
yCDtJjVbXK/4qEtiSA4qcV1HrNuHmhZEwWahntLqo++x3oLK7DrWfHwTX5gHMyv2
19-
DGTggnNfB8uzzNe3giT0j6ie9DJEnvv1hB0GpUToUNECusrKsYnWLdJkIA==
2+
MIIDADCCAegCCQDmOCndJJOWFjANBgkqhkiG9w0BAQsFADBCMSUwIwYDVQQLDBxN
3+
eVNRTENvbm5lY3RvclB5dGhvbiBSb290IENBMRkwFwYDVQQDDBBNeUNvbm5QeSBS
4+
b290IENBMB4XDTE3MDMxNzE1NTAzNloXDTI2MDQwNTE1NTAzNlowQjElMCMGA1UE
5+
CwwcTXlTUUxDb25uZWN0b3JQeXRob24gUm9vdCBDQTEZMBcGA1UEAwwQTXlDb25u
6+
UHkgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANex2fME
7+
DGfFk6KIIjsCpXQ6Rsv7nClZ+H7iT/xBMDHtQbqVYX1HIDYGRApWIi0Mmg3hosri
8+
6TO5wJIMMEwcSurVStyLXPpCT4Dg3iDuKToYfNNGtuH9DFWh1fnkeni0gbEh+/yT
9+
PIe3FLZCHD+F12ST1z88i4LXOG4NuozKI2cmQcHxdVkYYzknMX4IKdP4AniPgMq0
10+
9YmQJjXH6y7lPzDXeUuG8YrOSuvfl4W2bjht4mGP6YUUQkwZ5qbRQfrkduQB3+pa
11+
+7P6ckd3q91j1+H1kRCn4a1S28xzPOaey6cLQ/DRVKP9EwPVV9H3/Wm8BdTr0ZMs
12+
1s2VQtocmzcp35kCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAGvUp9Du79gpN/pBD
13+
8eG7ZX/YMpK1cbzUwD+TqmP7QnXItRrZalbmadzZ6P161ff0QOEQPxL181+EEXFe
14+
yC8f33EGu9n6ZlSnj/HrdMZ2sjv8QA8M4Vg2vn81qUT/EsJQOjJA6n30ybncZHWB
15+
ovmFgBlq9miX2gDCMRosiRkzm4HAETdWQhiQ/jU4RV+pgP3/sd/mk/u2D5nqMeuT
16+
Ni61ke1CfskuCar5knXTdw7PYfCVXrD1ndgpf7e+qdz534GMkHcFKQkEvWE+ZuWj
17+
CHx9t32JFekCSzJCYs5YuAfuIJc0aC+RmA/lF7UUGyj++wWFAMnkmVEf5MM3WGjM
18+
HRerEg==
2019
-----END CERTIFICATE-----

tests/data/ssl/tests_CA_key.pem

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
-----BEGIN RSA PRIVATE KEY-----
2-
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
2727
-----END RSA PRIVATE KEY-----

tests/data/ssl/tests_client_cert.pem

Lines changed: 63 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,67 @@
1+
Certificate:
2+
Data:
3+
Version: 1 (0x0)
4+
Serial Number: 3 (0x3)
5+
Signature Algorithm: md5WithRSAEncryption
6+
Issuer: OU=MySQLConnectorPython Root CA, CN=MyConnPy Root CA
7+
Validity
8+
Not Before: Mar 17 15:50:37 2017 GMT
9+
Not After : Mar 17 15:50:37 2018 GMT
10+
Subject: OU=MySQLConnectorPython Client Cert, CN=localhost
11+
Subject Public Key Info:
12+
Public Key Algorithm: rsaEncryption
13+
Public-Key: (2048 bit)
14+
Modulus:
15+
00:b0:7b:da:61:20:7c:13:97:fa:1e:20:83:e0:40:
16+
e8:94:4a:ea:1c:62:22:09:4e:d3:cd:30:66:73:28:
17+
f4:ff:2d:79:a4:b6:0b:c7:b7:20:c8:f6:c0:98:66:
18+
3d:46:ec:f1:8c:04:8b:d7:3c:b4:fa:69:6c:c5:47:
19+
1b:04:a4:a3:53:5a:0a:f2:a4:f7:94:d5:2c:d7:b6:
20+
24:81:e0:c2:ea:51:d1:6e:8e:d4:58:dc:5b:fc:b9:
21+
1b:6b:7c:52:cc:17:36:85:63:ca:f0:1f:75:2f:b8:
22+
97:96:d1:08:ab:46:31:31:e6:9c:8b:26:a1:1b:df:
23+
35:66:36:d9:ba:e1:a4:3d:88:25:7a:9d:68:d3:62:
24+
20:ec:14:b0:59:2c:33:40:11:cf:03:70:17:1c:de:
25+
65:ca:0c:2e:26:2d:f0:33:13:52:d7:0f:69:d7:c0:
26+
d6:f8:71:03:19:f4:79:3d:66:98:56:d2:44:db:bf:
27+
aa:a7:d6:fc:2d:0b:29:63:0a:d4:3d:5e:7e:a7:2c:
28+
6c:b8:2f:32:6f:51:ce:4a:2d:6a:35:54:21:33:76:
29+
a2:64:4a:8c:1d:30:73:47:3e:90:19:68:c9:07:8f:
30+
14:c5:ff:93:c7:ec:b4:08:d7:30:11:f6:67:3f:7a:
31+
8a:57:2c:87:63:34:ff:ff:79:2b:6b:70:88:21:ca:
32+
4e:53
33+
Exponent: 65537 (0x10001)
34+
Signature Algorithm: md5WithRSAEncryption
35+
2e:d2:37:97:8b:aa:05:47:8d:b4:c6:87:7d:b8:41:d6:55:12:
36+
84:14:8d:91:de:4f:84:15:89:a2:90:5a:0a:94:a1:c2:41:42:
37+
18:3c:b7:10:c7:19:b5:01:96:2e:51:83:14:2f:64:0a:96:bb:
38+
ce:f8:28:df:ab:fe:72:05:e8:6a:fd:1d:7b:09:22:eb:26:e7:
39+
64:a7:a7:fe:fb:e8:e0:2f:91:e4:9e:fa:f6:ab:0b:5b:f3:82:
40+
e0:54:d5:07:d2:05:ae:99:fd:22:d8:23:ba:e5:16:21:d7:b0:
41+
82:98:4a:f0:87:36:ca:1e:4e:c0:c3:6a:22:a4:37:18:5f:6f:
42+
6f:7b:92:e9:bb:15:77:55:6b:9a:57:35:95:4c:64:e9:bb:12:
43+
cb:ab:67:4b:23:27:41:d3:71:15:5e:cf:6b:d6:13:05:f0:7a:
44+
df:0f:f9:fd:bc:0d:8b:e4:cb:e7:62:67:9e:10:00:c9:9d:ea:
45+
a7:cb:3f:ec:47:04:06:96:7f:b3:74:be:3c:cc:bd:72:05:d8:
46+
91:b7:d6:b1:9a:40:79:bd:eb:cb:7a:49:bc:a6:e7:61:4f:1d:
47+
68:79:21:ad:18:f6:13:6e:87:b6:13:a6:31:1e:f9:73:4c:ec:
48+
04:b4:f2:83:5a:25:ae:9c:2e:8e:3a:0a:1d:0a:fd:34:dd:d4:
49+
12:cc:4f:47
150
-----BEGIN CERTIFICATE-----
2-
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
1867
-----END CERTIFICATE-----

0 commit comments

Comments
 (0)