Skip to content

Commit 365371e

Browse files
author
Sean Treadway
committed
Rotate certs with 10 year lifetime
Use ./certs.sh to build the certs usable by this test or by a local RabbitMQ server as described by: http://www.rabbitmq.com/ssl.html
1 parent b0e97b5 commit 365371e

File tree

2 files changed

+253
-95
lines changed

2 files changed

+253
-95
lines changed

certs.sh

+159
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
#!/bin/sh
2+
#
3+
# Creates the CA, server and client certs to be used by tls_test.go
4+
# http://www.rabbitmq.com/ssl.html
5+
#
6+
# Copy stdout into the const section of tls_test.go or use for RabbitMQ
7+
#
8+
root=$PWD/certs
9+
10+
if [ -f $root/ca/serial ]; then
11+
echo >&2 "Previous installation found"
12+
echo >&2 "Remove $root/ca and rerun to overwrite"
13+
exit 1
14+
fi
15+
16+
mkdir -p $root/ca/private
17+
mkdir -p $root/ca/certs
18+
mkdir -p $root/server
19+
mkdir -p $root/client
20+
21+
cd $root/ca
22+
23+
chmod 700 private
24+
touch index.txt
25+
echo 'unique_subject = no' > index.txt.attr
26+
echo '01' > serial
27+
echo >openssl.cnf '
28+
[ ca ]
29+
default_ca = testca
30+
31+
[ testca ]
32+
dir = .
33+
certificate = $dir/cacert.pem
34+
database = $dir/index.txt
35+
new_certs_dir = $dir/certs
36+
private_key = $dir/private/cakey.pem
37+
serial = $dir/serial
38+
39+
default_crl_days = 7
40+
default_days = 3650
41+
default_md = sha1
42+
43+
policy = testca_policy
44+
x509_extensions = certificate_extensions
45+
46+
[ testca_policy ]
47+
commonName = supplied
48+
stateOrProvinceName = optional
49+
countryName = optional
50+
emailAddress = optional
51+
organizationName = optional
52+
organizationalUnitName = optional
53+
54+
[ certificate_extensions ]
55+
basicConstraints = CA:false
56+
57+
[ req ]
58+
default_bits = 2048
59+
default_keyfile = ./private/cakey.pem
60+
default_md = sha1
61+
prompt = yes
62+
distinguished_name = root_ca_distinguished_name
63+
x509_extensions = root_ca_extensions
64+
65+
[ root_ca_distinguished_name ]
66+
commonName = hostname
67+
68+
[ root_ca_extensions ]
69+
basicConstraints = CA:true
70+
keyUsage = keyCertSign, cRLSign
71+
72+
[ client_ca_extensions ]
73+
basicConstraints = CA:false
74+
keyUsage = digitalSignature
75+
extendedKeyUsage = 1.3.6.1.5.5.7.3.2
76+
77+
[ server_ca_extensions ]
78+
basicConstraints = CA:false
79+
keyUsage = keyEncipherment
80+
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
81+
subjectAltName = @alt_names
82+
83+
[ alt_names ]
84+
IP.1 = 127.0.0.1
85+
'
86+
87+
openssl req \
88+
-x509 \
89+
-nodes \
90+
-config openssl.cnf \
91+
-newkey rsa:2048 \
92+
-days 3650 \
93+
-subj "/CN=MyTestCA/" \
94+
-out cacert.pem \
95+
-outform PEM
96+
97+
openssl x509 \
98+
-in cacert.pem \
99+
-out cacert.cer \
100+
-outform DER
101+
102+
openssl genrsa -out $root/server/key.pem 2048
103+
openssl genrsa -out $root/client/key.pem 2048
104+
105+
openssl req \
106+
-new \
107+
-nodes \
108+
-config openssl.cnf \
109+
-subj "/CN=127.0.0.1/O=server/" \
110+
-key $root/server/key.pem \
111+
-out $root/server/req.pem \
112+
-outform PEM
113+
114+
openssl req \
115+
-new \
116+
-nodes \
117+
-config openssl.cnf \
118+
-subj "/CN=127.0.0.1/O=client/" \
119+
-key $root/client/key.pem \
120+
-out $root/client/req.pem \
121+
-outform PEM
122+
123+
openssl ca \
124+
-config openssl.cnf \
125+
-in $root/server/req.pem \
126+
-out $root/server/cert.pem \
127+
-notext \
128+
-batch \
129+
-extensions server_ca_extensions
130+
131+
openssl ca \
132+
-config openssl.cnf \
133+
-in $root/client/req.pem \
134+
-out $root/client/cert.pem \
135+
-notext \
136+
-batch \
137+
-extensions client_ca_extensions
138+
139+
cat <<-END
140+
const caCert = \`
141+
`cat $root/ca/cacert.pem`
142+
\`
143+
144+
const serverCert = \`
145+
`cat $root/server/cert.pem`
146+
\`
147+
148+
const serverKey = \`
149+
`cat $root/server/key.pem`
150+
\`
151+
152+
const clientCert = \`
153+
`cat $root/client/cert.pem`
154+
\`
155+
156+
const clientKey = \`
157+
`cat $root/client/key.pem`
158+
\`
159+
END

tls_test.go

+94-95
Original file line numberDiff line numberDiff line change
@@ -97,123 +97,122 @@ func TestTLSHandshake(t *testing.T) {
9797

9898
const caCert = `
9999
-----BEGIN CERTIFICATE-----
100-
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
115115
-----END CERTIFICATE-----
116116
`
117117

118-
// Assumes subject CN is 127.0.0.1 and SAN includes 127.0.0.1
119118
const serverCert = `
120119
-----BEGIN CERTIFICATE-----
121-
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
137136
-----END CERTIFICATE-----
138137
`
139138

140139
const serverKey = `
141140
-----BEGIN RSA PRIVATE KEY-----
142-
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
167166
-----END RSA PRIVATE KEY-----
168167
`
169168

170169
const clientCert = `
171170
-----BEGIN CERTIFICATE-----
172-
MIIC4jCCAcqgAwIBAgIBBDANBgkqhkiG9w0BAQUFADATMREwDwYDVQQDEwhNeVRl
173-
c3RDQTAeFw0xMzAxMjMyMjA5MTlaFw0xNDAxMjMyMjA5MTlaMCUxEjAQBgNVBAMM
174-
CTEyNy4wLjAuMTEPMA0GA1UECgwGY2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOC
175-
AQ8AMIIBCgKCAQEAuKjq7EQKNEsps9r0x/ed09eqasUSOPsNx7SVoHkDq2BkE8xW
176-
uLch2ifTA37wKvzFd1DeF9iARpt3n2a0etisMDOnZvWOLh14qVT8YJ6VPnppfkMA
177-
q7sRq539jDHd5E7VYniPOmWldRduC96pVzgsbbdpMUW8az4kVJXcDp7qSMuXG13Y
178-
A/SYVWcGt9hfPyDJOR1kz8btJkAHGYVS2gK9TCewOYwBo8kBPQxT4A+D8eR9zZEh
179-
lraF8k0y5RGVUwocUG/U3gPgyrG+OIk9xeO8pNRh/QhgT9y5XZl1eCiJSRSXT3C+
180-
FyQxTs7k3vMIWAylTH1AmCGEty08yTD+JF7hnwIDAQABoy8wLTAJBgNVHRMEAjAA
171+
MIIC4jCCAcqgAwIBAgIBAjANBgkqhkiG9w0BAQUFADATMREwDwYDVQQDEwhNeVRl
172+
c3RDQTAeFw0xNDAxMjcxOTUyMjNaFw0yNDAxMjUxOTUyMjNaMCUxEjAQBgNVBAMT
173+
CTEyNy4wLjAuMTEPMA0GA1UEChMGY2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOC
174+
AQ8AMIIBCgKCAQEAu7LMqd+agoH168Bsi0WJ36ulYqDypq+GZPF7uWOo2pE0raKH
175+
B++31/hjnkt6yC5kLKVZZ0EfolBa9q4Cy6swfGaEMafy44ZCRneLnt1azL1N6Kfz
176+
+U0KsOqyQDoMxYJG1gVTEZN19/U/ew2eazcxKyERI3oGCQ4SbpkxBTbfxtAFk49e
177+
xIB3obsuMVUrmtXE4FkUkvG7NgpPUgrhp0yxYpj9zruZGzGGT1zNhcarbQ/4i7It
178+
ZMbnv6pqQWtYDgnGX2TDRcEiXGeO+KrzhfpTRLfO3K4np8e8cmTyXM+4lMlWUgma
179+
KrRdu1QXozGqRs47u2prGKGdSQWITpqNVCY8fQIDAQABoy8wLTAJBgNVHRMEAjAA
181180
MAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUF
182-
AAOCAQEAi6bJ9lyUqunl2KXKHn5Lne59YBqJ3XEqFlN/9H5MrMheOusoDtduzTYj
183-
rm2hCY84ZceKZdz2F5vsz1XakX2apbPVBOVWPOUylyVWlRRGB7PSXsSHyU8CXI96
184-
2HtpK/WiWuVOXwdxIX/MlyL5dx8ckvje0YXMJYS1c+OGEmeRBNMBitVRI3ZhcjAw
185-
SIj71EiXG1EsF2Ok7H1bXiEgjmFr4Ui4CpmeITybGAqoVeA9+t09FFFwABS1wlOM
186-
ZGcOWPhEGv6vCpaCLLdAaU9K+BYnBhtVIhNpt5Q1gtj/pLauVWa2Ouhcq41l8HPR
187-
tKIEURQFA5C0JL68IPorTQt5z+D+bg==
181+
AAOCAQEAhCuBCLznPc4O96hT3P8Fx19L3ltrWbc/pWrx8JjxUaGk8kNmjMjY+/Mt
182+
JBbjUBx2kJwaY0EHMAfw7D1f1wcCeNycx/0dyb0E6xzhmPw5fY15GGNg8rzWwqSY
183+
+i/1iqU0IRkmRHV7XCF+trd2H0Ec+V1Fd/61E2ccJfOL5aSAyWbMCUtWxS3QMnqH
184+
FBfKdVEiY9WNht5hnvsXQBRaNhowJ6Cwa7/1/LZjmhcXiJ0xrc1Hggj3cvS+4vll
185+
Ew+20a0tPKjD/v/2oSQL+qkeYKV4fhCGkaBHCpPlSJrqorb7B6NmPy3nS26ETKE/
186+
o2UCfZc5g2MU1ENa31kT1iuhKZapsA==
188187
-----END CERTIFICATE-----
189188
`
190189

191190
const clientKey = `
192191
-----BEGIN RSA PRIVATE KEY-----
193-
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
218217
-----END RSA PRIVATE KEY-----
219218
`

0 commit comments

Comments
 (0)