1
1
#! /bin/sh
2
2
# 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.
4
4
5
5
# MySQL Connector/Python is licensed under the terms of the GPLv2
6
6
# <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
@@ -47,16 +47,58 @@ if [ ! -d $DESTDIR ]; then
47
47
exit 2
48
48
fi
49
49
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
+
50
85
echo
51
86
echo " Generating Root Certificate"
52
87
echo
53
- $OPENSSL genrsa 2048 > $DESTDIR /tests_CA_key.pem
88
+ $OPENSSL genrsa -out $DESTDIR /tests_CA_key.pem 2048
54
89
if [ $? -ne 0 ]; then
55
90
exit 3
56
91
fi
57
92
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
60
102
if [ $? -ne 0 ]; then
61
103
exit 3
62
104
fi
@@ -66,41 +108,64 @@ echo
66
108
echo " Generating Server Certificate"
67
109
echo
68
110
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
71
134
if [ $? -ne 0 ]; then
72
135
exit 3
73
136
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 "
76
139
if [ $? -ne 0 ]; then
77
140
exit 3
78
141
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
82
147
if [ $? -ne 0 ]; then
83
148
exit 3
84
149
fi
85
150
86
- # MySQL Client Certificate: generate, remove passphase , sign
151
+ # MySQL Client Certificate: generate, remove passphrase , sign
87
152
echo
88
153
echo " Generating Client Certificate"
89
154
echo
90
155
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
93
157
if [ $? -ne 0 ]; then
94
158
exit 3
95
159
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 "
98
162
if [ $? -ne 0 ]; then
99
163
exit 3
100
164
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
104
169
if [ $? -ne 0 ]; then
105
170
exit 3
106
171
fi
109
174
echo
110
175
echo " Cleaning up"
111
176
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)
113
180
0 commit comments