Skip to content

Commit e65d62b

Browse files
authored
fix(shelf): Replace expired test certificates and add a regen script (#492)
1 parent b924de8 commit e65d62b

File tree

3 files changed

+98
-90
lines changed

3 files changed

+98
-90
lines changed

pkgs/shelf/test/ssl_certs.dart

Lines changed: 51 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -4,96 +4,57 @@
44

55
import 'dart:convert';
66

7-
List<int> certChainBytes = utf8.encode('''
8-
-----BEGIN CERTIFICATE-----
9-
MIIDZDCCAkygAwIBAgIBATANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBVpbnRl
10-
cm1lZGlhdGVhdXRob3JpdHkwHhcNMTUxMDI3MTAyNjM1WhcNMjUxMDI0MTAyNjM1
11-
WjAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
12-
ggEKAoIBAQCkg/Qr8RQeLTOSgCkyiEX2ztgkgscX8hKGHEHdvlkmVK3JVEIIwkvu
13-
/Y9LtHZUia3nPAgqEEbexzTENZjSCcC0V6I2XW/e5tIE3rO0KLZyhtZhN/2SfJ6p
14-
KbOh0HLr1VtkKJGp1tzUmHW/aZI32pK60ZJ/N917NLPCJpCaL8+wHo3+w3oNqln6
15-
oJsfgxy9SUM8Bsc9WMYKMUdqLO1QKs1A5YwqZuO7Mwj+4LY2QDixC7Ua7V9YAPo2
16-
1SBeLvMCHbYxSPCuxcZ/kDkgax/DF9u7aZnGhMImkwBka0OQFvpfjKtTIuoobTpe
17-
PAG7MQYXk4RjnjdyEX/9XAQzvNo1CDObAgMBAAGjgbQwgbEwPAYDVR0RBDUwM4IJ
18-
bG9jYWxob3N0ggkxMjcuMC4wLjGCAzo6MYcEfwAAAYcQAAAAAAAAAAAAAAAAAAAA
19-
ATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSvhJo6taTggJQBukEvMo/PDk8tKTAf
20-
BgNVHSMEGDAWgBS98L4T5RaIToE3DkBRsoeWPil0eDAOBgNVHQ8BAf8EBAMCA6gw
21-
EwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAHLOt0mL2S4A
22-
B7vN7KsfQeGlVgZUVlEjem6kqBh4fIzl4CsQuOO8oJ0FlO1z5JAIo98hZinymJx1
23-
phBVpyGIKakT/etMH0op5evLe9dD36VA3IM/FEv5ibk35iGnPokiJXIAcdHd1zam
24-
YaTHRAnZET5S03+7BgRTKoRuszhbvuFz/vKXaIAnVNOF4Gf2NUJ/Ax7ssJtRkN+5
25-
UVxe8TZVxzgiRv1uF6NTr+J8PDepkHCbJ6zEQNudcFKAuC56DN1vUe06gRDrNbVq
26-
2JHEh4pRfMpdsPCrS5YHBjVq/XHtFHgwDR6g0WTwSUJvDeM4OPQY5f61FB0JbFza
27-
PkLkXmoIod8=
28-
-----END CERTIFICATE-----
29-
-----BEGIN CERTIFICATE-----
30-
MIIDLjCCAhagAwIBAgIBAjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1yb290
31-
YXV0aG9yaXR5MB4XDTE1MTAyNzEwMjYzNVoXDTI1MTAyNDEwMjYzNVowIDEeMBwG
32-
A1UEAwwVaW50ZXJtZWRpYXRlYXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOC
33-
AQ8AMIIBCgKCAQEA6GndRFiXk+2q+Ig7ZOWKKGta+is8137qyXz+eVFs5sA0ajMN
34-
ZBAMWS0TIXw/Yks+y6fEcV/tfv91k1eUN4YXPcoxTdDF97d2hO9wxumeYOMnQeDy
35-
VZVDKQBZ+jFMeI+VkNpMEdmsLErpZDGob/1dC8tLEuR6RuRR8X6IDGMPOCMw1jLK
36-
V1bQjPtzqKadTscfjLuKxuLgspJdTrzsu6hdcl1mm8K6CjTY2HNXWxs1yYmwfuQ2
37-
Z4/8sOMNqFqLjN+ChD7pksTMq7IosqGiJzi2bpd5f44ek/k822Y0ATncJHk4h1Z+
38-
kZBnW6kgcLna1gDri9heRwSZ+M8T8nlHgIMZIQIDAQABo3sweTASBgNVHRMBAf8E
39-
CDAGAQH/AgEAMB0GA1UdDgQWBBS98L4T5RaIToE3DkBRsoeWPil0eDAfBgNVHSME
40-
GDAWgBRxD5DQHTmtpDFKDOiMf5FAi6vfbzAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0l
41-
BAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAD+4KpUeV5mUPw5IG/7w
42-
eOXnUpeS96XFGuS1JuFo/TbgntPWSPyo+rD4GrPIkUXyoHaMCDd2UBEjyGbBIKlB
43-
NZA3RJOAEp7DTkLNK4RFn/OEcLwG0J5brL7kaLRO4vwvItVIdZ2XIqzypRQTc0MG
44-
MmF08zycnSlaN01ryM67AsMhwdHqVa+uXQPo8R8sdFGnZ33yywTYD73FeImXilQ2
45-
rDnFUVqmrW1fjl0Fi4rV5XI0EQiPrzKvRtmF8ZqjGATPOsRd64cwQX6V+P5hNeIR
46-
9pba6td7AbNGausHfacRYMyoGJWWWkFPd+7jWOCPqW7Fk1tmBgdB8GzXa3inWIRM
47-
RUE=
48-
-----END CERTIFICATE-----
49-
-----BEGIN CERTIFICATE-----
50-
MIIC+zCCAeOgAwIBAgIBATANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1yb290
51-
YXV0aG9yaXR5MB4XDTE1MTAyNzEwMjYzNFoXDTI1MTAyNDEwMjYzNFowGDEWMBQG
52-
A1UEAwwNcm9vdGF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
53-
ggEBAMl+dcraUM/E7E6zl7+7hK9oUJYXJLnfiMtP/TRFVbH4+2aEN8vXzPbzKdR3
54-
FfaHczXQTwnTCaYA4u4uSDvSOsFFEfxEwYORsdKmQEM8nGpVX2NVvKsMcGIhh8kh
55-
ZwJfkMIOcAxmGIHGdMhF8VghonJ8uGiuqktxdfpARq0g3fqIjDHsF9/LpfshUfk9
56-
wsRyTF0yr90U/dsfnE+u8l7GvVl8j2Zegp0sagAGtLaNv7tP17AibqEGg2yDBrBN
57-
9r9ihe4CqMjx+Q2kQ2S9Gz2V2ReO/n6vm2VQxsPRB/lV/9jh7cUcS0/9mggLYrDy
58-
cq1v7rLLQrWuxMz1E3gOhyCYJ38CAwEAAaNQME4wHQYDVR0OBBYEFHEPkNAdOa2k
59-
MUoM6Ix/kUCLq99vMB8GA1UdIwQYMBaAFHEPkNAdOa2kMUoM6Ix/kUCLq99vMAwG
60-
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBABrhjnWC6b+z9Kw73C/niOwo
61-
9sPdufjS6tb0sCwDjt3mjvE4NdNWt+/+ZOugW6dqtvqhtqZM1q0u9pJkNwIrqgFD
62-
ZHcfNaf31G6Z2YE+Io7woTVw6fFobg/EFo+a/qwbvWL26McmiRL5yiSBjVjpX4a5
63-
kdZ+aPQUCBaLrTWwlCDqzSVIULWUQvveRWbToMFKPNID58NtEpymAx3Pgir7YjV9
64-
UnlU2l5vZrh1PTCqZxvC/IdRESUfW80LdHaeyizRUP+6vKxGgSz2MRuYINjbd6GO
65-
hGiCpWlwziW2xLV1l2qSRLko2kIafLZP18N0ThM9zKbU5ps9NgFOf//wqSGtLaE=
66-
-----END CERTIFICATE-----
67-
''');
68-
69-
List<int> certKeyBytes = utf8.encode('''
7+
List<int> certKeyBytes = utf8.encode(r'''
708
-----BEGIN ENCRYPTED PRIVATE KEY-----
71-
MIIE4zAcBgoqhkiG9w0BDAEBMA4ECBMCjlg8JYZ4AgIIAASCBMFd9cBoZ5xcTock
72-
AVQcg/HzYJtMceKn1gtMDdC7mmXuyN0shoxhG4BpQInHkFARL+nenesXFxEm4X5e
73-
L603Pcgw72/ratxVpTW7hPMjiLTEBqza0GjQm7Sarbdy+Vzdp/6XFrAcPfFl1juY
74-
oyYzbozPsvFHz3Re44y1KmI4HAzU/qkjJUbNTTiPPVI2cDP6iYN2XXxBb1wwp8jR
75-
iqdZqFG7lU/wvPEbD7BVPpmJBHWNG681zb4ea5Zn4hW8UaxpiIBiaH0/IWc2SVZd
76-
RliAFo3NEsGxCcsnBo/n00oudGbOJxdOp7FbH5hJpeqX2WhCyJRxIeHOWmeuMAet
77-
03HFriiEmJ99m2nEJN1x0A3QUUM7ji6vZAb4qb1dyq7LlX4M2aaqixRnaTcQkapf
78-
DOxX35DEBXSKrDpyWp6Rx4wNpUyi1TKyhaVnYgD3Gn0VfC/2w86gSFlrf9PMYGM0
79-
PvFxTDzTyjOuPBRa728gZOGXgDOL7qvdInU/opVew7kFeRQHXxHzFCLK5dD+Vrig
80-
5fS3m0++f55ODkxqHXB8gbXbd3GMmsW6MrGpU7VsCNtbVPdSMW0FalovEB0M+2lj
81-
1VfuvL+0F5huTe+BgZAt6xgET/CIcZXdNMRPVhraqUjqWtI9Rdk4STPCpU1rDkjG
82-
YDl/fo4W2T6qQWFUpiC9IvVVGkVxaqfZZ4Qu+V5xPUi6vk95QiTNkN1t+m+sCCgS
83-
Llkea8Um0aHMy33Lj3NsfL0LMrnpniqcAks8BvcgIZwk1VRqcj7BQVCygJSYrmAR
84-
DBhMpjWlXuSggnyVPuduZDtnTN+8lCHLOKL3a3bDb6ySaKX49Km6GutDLfpDtEA0
85-
3mQvmEG4XVm7zy+AlN72qFbtSLDRi/D/uQh2q/ZrFQLOBQBQB56TvEbKouLimUDM
86-
ascQA3aUyhOE7e+d02NOFIFTozwc/C//CIFeA+ZEwxyfha/3Bor6Jez7PC/eHNxZ
87-
w7YMXzPW9NhcCcerhYGebuCJxLwzqJ+IGdukjKsGV2ytWDoB2xZiJNu096j4RKcq
88-
YSJoen0R7IH8N4eDujXR8m9kAl724Uqs1OoAs4VNICvzTutbsgVZ6Z+NMOcfnPw9
89-
jZkFhot16w8znD+OmhBR7/bzOLpaeUhk7EhNq5M6U0NNWx3WwkDlvU/jx+6/EQe3
90-
iLEHptH2HYBF1xscaKGbtKNtuQsfdzgWpOX0qK2YbK3yCKvL/xIm1DQmDZDKkWdW
91-
VNh8oGV1H96CivWlvxhAgXKz9F/83CjMw8YXRk7RJvWR4vtNvXFAvGkFIYCN9Jv9
92-
p+1ukaYoxSLGBik907I6gWSHqumJiCprUyAX/bVfZfNiYh4hzeA3lhwxZSax3JG4
93-
7QFPvyepOmF/3AAzS/Pusx6jOZnuCMCkfQi6Wpem1o3s4x+fP7kz00Xuj01ErucM
94-
S10ixfIh84kXBN3dTRDtDdeCyoMsBKO0W5jDBBlWL02YfdF6Opo1Q4cPh2DYgXMh
95-
XEszNZSK5LB0y+f3A6Kdx/hkZzHVvMONA70OyrkoZzGyWENhcB0c7ntTJyPPD2qM
96-
s0HRA2VwF/0ypU3OKERM1Ua5NSkTgvnnVTlV9GO90Tkn5v4fxdl8NzIuJLyGguTP
97-
Xc0tRM34Lg==
9+
MIIFJTBfBgkqhkiG9w0BBQ0wUjAxBgkqhkiG9w0BBQwwJAQQyo3SRrssK8PzbuTA
10+
1qXVggICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEEOHOKIfFvvowQBax
11+
0iX1HiYEggTA7izMZ647ptWrKcavuEjmU91V/IZBd5Qf+J9L44kJKbJxOZjrLIPl
12+
u52u4Bu/aCynFMO/R2WDxfNotHOkoQGZLfexH6snecAK9H0++jsbakEGpks3N/v+
13+
R606v1LTtU0z/jOYP80le/ueX/H2plr2QA9RZaidMKP8zRJBx8pnSmPfZMRn6NRI
14+
0QIQFJTaba7gBH45ZxxZ+0Yy+fcc3m0flhI3Wz2Gkbe8IIHyWRyQ1scEeGRR8Bed
15+
l/7GWQREIO8ycEd+7vRnlb5h1JhwYKknHD0EPoKu4ARe8U/6ujZhj/0jG2AgDMwY
16+
Ar/KkVlDsOeYpr8lbWs+/RjZefQJdU3upVvwO26MD2IYQcFa/oUnDRoX3T4eKnAk
17+
tph2uWJhjYXk4UwyOP4AUms5s7s3EztQei3WMpxjGquD5wZnz53A17iyPhEoSwyE
18+
wpSDSdRmpI9+e/qS9404zlfVVYrDcW/6I48ATYfXo2CyHkLE4Ilv1HMelO20TFuI
19+
Sqh1U211m0WYKZvrdBSBL1YXzjyt3/YyVsN2Md16k9UJj5JRKYJB/0ENbu/DdVjo
20+
se1gO2tRet5iaxrTmPvNjEgDwqDWgC6oKODK8UVBdMnMFN51edXnecQPpxFy/Cg1
21+
PrwNxgsQhNHLbZzQuQ2hrt4WJ4gHsbN4T/CXcJMg/MCFSKwxNLEr5jd6fqkDyQVz
22+
ofmDyJpRY1VL5vdzvDIf/VKAM+gW8Llw4f5uBidtvs6WYrVzjJQv+A4C4u/9fhn7
23+
WPvSrVMRHPRR1aysZkJD8xCZLlhWT+WVJsPo1HEz8y+2NWC9gJEhqeKlF5kzt1bC
24+
Sw7OXv+3mmtp3I03tqdnYqLlyKbx0+/6cKOyuOlINjOu3ljyLAeLXA5T7RGMTe+h
25+
1ZyKuZvvdoFGlzduEsLDyU/Pp3KkkYWTp940ViwTIwQgTaw/nvg/zyl4neGovf22
26+
6XQTkAVBFZdU64G4lFUrQ8b7eS80RzhN3MGkfqFPnpubS2NjZWdUlivXnR9yXYYz
27+
mBICZ0VbUNkjt8pf1l6L6wGhYkGzSmplrhpS5M0n3upktiJZPqg4yiEF06OnPIFd
28+
80EZ/OIaFybyszKNgJz3aCX1YLdby51AJFrh8rJDoKY20J8ZvUH62N97rBUzl8SS
29+
1NujvULSA1JXVDf3aHzB7T90z4p6UOCZ/sXiC/9iGPx79X8mMOdLEB5TzMp0X5P1
30+
xlHcYXfdfAsojM8nGPp816xOTouMngTKNIsahbyGShbFQ7HIWoa0z1yXbMAb0v2i
31+
YR45w3GHH2iJ/qU54ZB1cyXU0DBafdEhel48UfzFiUXMbisDgbZeRwX4g/dBwLZd
32+
K3h039yJlUMIpQzj7XGs70aMRRiXW8Xc0pw9h4lbW91TbI6CXXM2iGYZCoj5IWTp
33+
s4mNlHFOpjVuFVWWcDjtW5x8qR4+/4YTP6IyVUoWUm8sINx5XPGLA2aIIFY93qTR
34+
ZrVv0s5Nf1pqB6LJOwO1SN9kINZFbEO2zsrxlCEu81QhKrNHVKkh+nVbaIPHPg3u
35+
4y9lPcob24z/r4cvDnFHY7TtMXaReCZ6vTbuyl0mDrfHocsxON1LwdEOqg2pLqdB
36+
Jc1sSXYAzMWN8hYh/tWpQCoH76l/CzYxpw==
9837
-----END ENCRYPTED PRIVATE KEY-----
9938
''');
39+
40+
List<int> certChainBytes = utf8.encode(r'''
41+
-----BEGIN CERTIFICATE-----
42+
MIIDBzCCAe+gAwIBAgIUNUibD3eVBRhGMNDMTBN2+42GesEwDQYJKoZIhvcNAQEL
43+
BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MCAXDTI1MTExMDEyMDU0NVoYDzIxMjUx
44+
MDE3MTIwNTQ1WjAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEB
45+
AQUAA4IBDwAwggEKAoIBAQC7OkgNqT/jT2VqpSW/kh5fapcHERf9c9yzFz3tfAAM
46+
5OndrQgLLuSvwdZLiBydxKxoWko3EbbxMtejYfpnkjc3qCw/Uo+c+jKERFqkLiR9
47+
e9EPSF7GrfRhBaTj9s1WNE5Es8caxW4/dcVwiQ5k0XyxyVADxN6BV3jTkTRd3caB
48+
KNcLrj7XGu1UPl8F3NjEVMREe176pVDHexWfockkDsW0lDroyBBixK1ZHDxCOQhl
49+
Rv3C8U0ZGfb9wsbXvd+u1+RAwOmyh/Z4zwZ3xuQVq0rzlT7BRbfRCEVXDMbT4oP/
50+
fWQK4VNDcM0BE1Zl4Dzwy+AMzWQK3NeWgYJD+cTx2qgxAgMBAAGjTzBNMCwGA1Ud
51+
EQQlMCOCCWxvY2FsaG9zdIcEfwAAAYcQAAAAAAAAAAAAAAAAAAAAATAdBgNVHQ4E
52+
FgQU2ts6jvn5ZbXbdFmFKUm/rvjnUoIwDQYJKoZIhvcNAQELBQADggEBAFXDnzDd
53+
4HvLzPz/qXEE5wxt3fyVCCWhzTZZ/ig+9ODWyqJwFmajXsMQdoIGwcTQx13w6dAC
54+
Sd6JAr/s6eamL3L1Gs7dOY3aXzVW5jo0O/589hW5I9IRc3Ghs+PIlBnBmp590z8M
55+
Q055Y9jYdMxXBajiY0LaEVQN4Onox0GRxW7Dvn7fTY2MXda/Pm8P0B1jm05zB2FB
56+
aHhO9h+OQGIdKhzwAcFW07mOBmIjQTXUx5CuEarrHfjys2Z/oPlT4AO7D/UbwYcQ
57+
/0eNuV2vPWB+WMrumT5YlTkHX7R6Dap/vfyEJ/ZrpAasquW+0Nmvt4SFsFJs7uO1
58+
xvGl/OyQCYONF5E=
59+
-----END CERTIFICATE-----
60+
''');

pkgs/shelf/tools/openssl.cfg

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
[req]
2+
distinguished_name = dn
3+
req_extensions = v3_req
4+
prompt = no
5+
6+
[dn]
7+
CN = localhost
8+
9+
[v3_req]
10+
subjectAltName = @alt_names
11+
12+
[alt_names]
13+
# DNS names
14+
DNS.1 = localhost
15+
# IPv4 addresses
16+
IP.1 = 127.0.0.1
17+
# IPv6 addresses
18+
IP.2 = ::1
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
3+
openssl genpkey -algorithm RSA -out localhost.key \
4+
-aes256 -pass pass:dartdart 2>/dev/null
5+
6+
openssl req -new -x509 -key localhost.key -days 36500 -out localhost.crt \
7+
-config tools/openssl.cfg -extensions v3_req -passin \
8+
pass:dartdart 2>/dev/null
9+
10+
KEY_CONTENT=$(cat localhost.key)
11+
CERT_CONTENT=$(cat localhost.crt)
12+
13+
cat <<EOF > test/ssl_certs.dart
14+
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
15+
// for details. All rights reserved. Use of this source code is governed by a
16+
// BSD-style license that can be found in the LICENSE file.
17+
18+
import 'dart:convert';
19+
20+
List<int> certKeyBytes = utf8.encode(r'''
21+
${KEY_CONTENT}
22+
''');
23+
24+
List<int> certChainBytes = utf8.encode(r'''
25+
${CERT_CONTENT}
26+
''');
27+
EOF
28+
29+
rm localhost.key localhost.crt

0 commit comments

Comments
 (0)