Merge lp:~cjwatson/launchpad/new-dev-certificate into lp:launchpad

Proposed by Colin Watson
Status: Merged
Merged at revision: 18284
Proposed branch: lp:~cjwatson/launchpad/new-dev-certificate
Merge into: lp:launchpad
Diff against target: 245 lines (+151/-78)
3 files modified
configs/development/launchpad.crt (+30/-27)
configs/development/launchpad.key (+52/-51)
utilities/make-dev-certificate (+69/-0)
To merge this branch: bzr merge lp:~cjwatson/launchpad/new-dev-certificate
Reviewer Review Type Date Requested Status
William Grant code Approve
Review via email: mp+312298@code.launchpad.net

Commit message

Create a new local TLS key and self-signed certificate, since the old one had expired.

To post a comment you must log in.
Revision history for this message
William Grant (wgrant) :
review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'configs/development/launchpad.crt'
2--- configs/development/launchpad.crt 2008-10-06 08:56:28 +0000
3+++ configs/development/launchpad.crt 2016-12-01 20:22:04 +0000
4@@ -1,29 +1,32 @@
5 -----BEGIN CERTIFICATE-----
6-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
42+jxFl22LqR5KjermIrzF1sSaZ22a3mpqrXSso/xpiBhDgsRfzSPTIJgYA1hojqK6O
43+bPwZQ1uRh2xYZtUMRfzCMz5YYIINQs9kOwuypmJqWDL5/09ReoW2HjaOqk/Ilb4p
44+Dd+fhWdTzkejZxZi1dIOLxvIBy+C2Jtv9L0Fwiqo6DRi9Ho+4ztiK5E0yw+WF/PQ
45+rPgGz3MHzI1IjCyqt5NvshdDi0+1Jy6+EEq5fUHdkTl9tqpBeeaKlfDXn7I6cwqs
46+umHkFL97jGQtXvePdJrT9z3tEuSbOLqfF/s5+VhGxRhmTuoGXrrKM9aBr+MCAwEA
47+AaOB4zCB4DCB3QYDVR0RBIHVMIHSgg1sYXVuY2hwYWQuZGV2ghVhbnN3ZXJzLmxh
48+dW5jaHBhZC5kZXaCEWFwaS5sYXVuY2hwYWQuZGV2ghhibHVlcHJpbnRzLmxhdW5j
49+aHBhZC5kZXaCEmJ1Z3MubGF1bmNocGFkLmRldoISY29kZS5sYXVuY2hwYWQuZGV2
50+ghNmZWVkcy5sYXVuY2hwYWQuZGV2ghp0cmFuc2xhdGlvbnMubGF1bmNocGFkLmRl
51+doIUeG1scnBjLmxhdW5jaHBhZC5kZXaCDnRlc3RvcGVuaWQuZGV2MA0GCSqGSIb3
52+DQEBCwUAA4ICAQARAlq+bEja2OGKQtcnB1tw1FHw5d3rpDCs3GK8ujUUW9p3cQ8O
53+zHG1NLdXI/lpNQab1iAPE2j254F0unsDt5h+bQBH6T1NJUmLO37v5Hx/RZcbsm73
54+Lz4uyr4gQ9t0jW6Bo2YJzKLbXYFEpK5Ppaho/izoVNnokDuT5mhUUEWujGAtz+zN
55+3GwDmOgJCt6WUh39KLtqCcodScJapL+q1wAf102PUCz9II3OANyH4/+6UBwlW0D0
56+X0F+TB3jwHqYqEZKhZ5Y2TeG3MGhmZ6Aksg+gbom4WBIOJf1Cosyl0bAMcUOTMbn
57+98+ssbC8CtEbmhJ45jp4ibj0O/yXg15P/VwvyYzovfEyJaso6sKRUpMr0HWRJmLE
58+pCtf32nDBCsGJgJ/WJz+pS/JsmEJ3N7cCwsSjXQN2mcHViyeViLQlGAlXdTLnNnI
59+Q45Jx0XWDNC0mc6ILJbOuYU7lXmxvmSV8unyOpKDRoMpcRS1Nb/LDMiUff4lMt5S
60+EyaIooSsDveyS/ROW5VVQmBPbhVVBRDfCOnyYVPioH84QHqBw0jOB0oYcnJl4Tlx
61+V+I+4TlrTq/Fi1iI7Atp84ol/mJ+qmZP5jk6F8E7bvgVbdH0vXRZn8eK3vfQh6ej
62+w7LdOrrxMWbWoCHbFXyIqCy8dMtRKG2X+nxdfRxigBiXvZCot5imq/RVbg==
63 -----END CERTIFICATE-----
64
65=== modified file 'configs/development/launchpad.key'
66--- configs/development/launchpad.key 2008-10-06 08:56:28 +0000
67+++ configs/development/launchpad.key 2016-12-01 20:22:04 +0000
68@@ -1,51 +1,52 @@
69------BEGIN RSA PRIVATE KEY-----
70-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
119------END RSA PRIVATE KEY-----
120+-----BEGIN PRIVATE KEY-----
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
157+SHFy6uaS6ATpe3Pfv6iTo911X2NC5Zux5qt1b26QyzTk9hp0GTbyLoFgzCyTvCEZ
158+CdJUuhBeCSy7M7n7r2Q75cBJiCG9ArDViRv6w8I7SoA8RwsmOmyfAC02CBmkjbbD
159+hRSVlsxfOvA0qGn0tkLEyDLtGpJVJDUnY5B4RXECggEBAKIK8ov063eBRTblhdiU
160+edS26C5g3cnsjQBrcFScW2q+MoPP6topxBlaXtdaew7HAXpLEDG3SXYdcYpykDnO
161+xBzt+p5SgFVPrLSrgQFHjKFClF15Q2AYgIeBJGdda/mNzApk9232GK6Kup3EDjaU
162+c6EQmAdNRduSZ9apFUqeNJrnuGpuKeyn3JapYv4CT4C1TXrGo+DhIRili+AWS3BY
163+BTHmiCk6hYf4sXZ140xOL0EUo+FF9jG6fabOQn9/JsojHWkyV49jTp+60kI79XSX
164+MFgm+c2aDwFapMBbMUbCG/1qBPyUYOUOf8zryfoBm8P6SUXKXt7yHPQZakbf/RXK
165+0EsCggEBAMpPlqnKcuUTSe6HPp1Lev/7R2nGl8c3zVK5d+GnL3If5HMOItbh4moM
166+/v+IEUhv5YyEnhALy3AQ3C3sfSq23feh+hGyvZiyd2/XqaP6kCtObzkvCxlf9dgw
167+9LWjj6depJuXbaVqnbKRUJyJ5vTkldJsUbJPHSBlqMNKmRyONlAIX2f+ISulaFRl
168+UzuFOurers3nethpW3jIStNpj9RBtN3IJ2WYqtpGrAZPDscg8U1Iy90EMRFYuOtK
169+Wazpb8alsDUOATBgEh19QhlTgM806nA7w9QADwsdaXwwnEwWyxO+4/OvBUioQoyU
170+te4rkNFHqt1hfZ0F+WnMeuEiICNE4zA=
171+-----END PRIVATE KEY-----
172
173=== added file 'utilities/make-dev-certificate'
174--- utilities/make-dev-certificate 1970-01-01 00:00:00 +0000
175+++ utilities/make-dev-certificate 2016-12-01 20:22:04 +0000
176@@ -0,0 +1,69 @@
177+#! /usr/bin/python
178+#
179+# Copyright 2016 Canonical Ltd. This software is licensed under the
180+# GNU Affero General Public License version 3 (see the file LICENSE).
181+
182+"""Make a new local development SSL certificate.
183+
184+This is a very occasional maintenance utility. It writes new versions of
185+configs/development/launchpad.key and configs/development/launchpad.crt, and
186+these changes should be committed.
187+"""
188+
189+from __future__ import print_function
190+
191+import atexit
192+import os.path
193+import shutil
194+import subprocess
195+import sys
196+import tempfile
197+
198+
199+vhosts = [
200+ "launchpad.dev",
201+ "answers.launchpad.dev",
202+ "api.launchpad.dev",
203+ "blueprints.launchpad.dev",
204+ "bugs.launchpad.dev",
205+ "code.launchpad.dev",
206+ "feeds.launchpad.dev",
207+ "translations.launchpad.dev",
208+ "xmlrpc.launchpad.dev",
209+ "testopenid.dev",
210+ ]
211+
212+
213+def main():
214+ """Run the script."""
215+ key = "configs/development/launchpad.key"
216+ certificate = "configs/development/launchpad.crt"
217+ tmpdir = tempfile.mkdtemp()
218+ atexit.register(shutil.rmtree, tmpdir)
219+ config = os.path.join(tmpdir, "launchpad.cnf")
220+ shutil.copy2("/etc/ssl/openssl.cnf", config)
221+ with open(config, "a") as f:
222+ f.write(
223+ "\n[subjectAltName]\nsubjectAltName=%s\n" %
224+ ",".join("DNS:%s" % vhost for vhost in vhosts))
225+ subprocess.check_call([
226+ "openssl", "req",
227+ "-config", config,
228+ "-new",
229+ "-newkey", "rsa:4096",
230+ "-nodes",
231+ "-sha256",
232+ "-subj", "/CN=%s/" % vhosts[0],
233+ "-extensions", "subjectAltName",
234+ "-x509",
235+ "-days", "3650",
236+ "-keyout", key,
237+ "-out", certificate,
238+ ])
239+ print("Created new local key and self-signed certificate.")
240+ subprocess.check_call(["openssl", "x509", "-in", certificate, "-text"])
241+ return 0
242+
243+
244+if __name__ == '__main__':
245+ sys.exit(main())