98 lines
4.3 KiB
Plaintext
98 lines
4.3 KiB
Plaintext
![]() |
# coding: utf-8
|
|||
|
|
|||
|
from inspect import getsource
|
|||
|
from datetime import datetime
|
|||
|
|
|||
|
from OpenSSL.crypto import FILETYPE_PEM, TYPE_RSA, X509, PKey, dump_privatekey, dump_certificate
|
|||
|
|
|||
|
key = PKey()
|
|||
|
key.generate_key(TYPE_RSA, 2048)
|
|||
|
|
|||
|
cert = X509()
|
|||
|
issuer = cert.get_issuer()
|
|||
|
subject = cert.get_subject()
|
|||
|
|
|||
|
for dn in [issuer, subject]:
|
|||
|
dn.C = b"TR"
|
|||
|
dn.ST = b"Çorum"
|
|||
|
dn.L = b"Başmakçı"
|
|||
|
dn.CN = b"localhost"
|
|||
|
dn.O = b"Twisted Matrix Labs"
|
|||
|
dn.OU = b"Automated Testing Authority"
|
|||
|
dn.emailAddress = b"security@twistedmatrix.com"
|
|||
|
|
|||
|
cert.set_serial_number(datetime.now().toordinal())
|
|||
|
cert.gmtime_adj_notBefore(0)
|
|||
|
cert.gmtime_adj_notAfter(60 * 60 * 24 * 365 * 100)
|
|||
|
|
|||
|
cert.set_pubkey(key)
|
|||
|
cert.sign(key, b"sha1")
|
|||
|
|
|||
|
import __main__
|
|||
|
source = getsource(__main__)
|
|||
|
source = source.split(b"\n" + b"-" * 5)[0].rsplit(b"\n", 1)[0]
|
|||
|
with open(b"server.pem", "wb") as fObj:
|
|||
|
fObj.write(source)
|
|||
|
fObj.write(b"\n")
|
|||
|
fObj.write(b"'''\n")
|
|||
|
fObj.write(dump_privatekey(FILETYPE_PEM, key))
|
|||
|
fObj.write(dump_certificate(FILETYPE_PEM, cert))
|
|||
|
fObj.write(b"'''\n")
|
|||
|
with open(b"key.pem.no_trailing_newline", "wb") as fObj:
|
|||
|
fObj.write(dump_privatekey(FILETYPE_PEM, key).rstrip('\n'))
|
|||
|
with open(b"cert.pem.no_trailing_newline", "wb") as fObj:
|
|||
|
fObj.write(dump_certificate(FILETYPE_PEM, cert).rstrip('\n'))
|
|||
|
'''
|
|||
|
-----BEGIN PRIVATE KEY-----
|
|||
|
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDwT6kbqtMUI0sM
|
|||
|
kx4hI+L780dA59KfksZCqJGmOsMD6hte9EguasfkZzvCF3dk3NhwCjFSOvKx6rCw
|
|||
|
iteoWtYkVfo+rSuVNmt7bEsOUDtuTcaxTzIFB+yHOYwAaoz3zQkyVW0c4pzioiLC
|
|||
|
GCmfFLdiDBQGGp74tb+7a0V6kC3vMLFoM3L6QWq5uYRB5+xLzlPJ734ltyvfZHL3
|
|||
|
Us6pcUbK+3WTWvb4ER0W2RqArAj6Bc/ERQKIAPFEiZi9bIYTwvBH27OKHRz+KoY/
|
|||
|
G8zY+l+WZoJqDhupRAQAuh7O7V/y6bSP+KNxJRie9QkZvw1PSaGSXtGJI3WWdO12
|
|||
|
/UlgepJpAgMBAAECggEAFq3d7s+DVi4yggBMYqJJZK/D9LssJIUsktPn0wFOsEri
|
|||
|
xGZXfZH0RXj8qcefK/SvtHsxxmnrx6C3hiHEUo4oEYvPrySWrWFSaXaB6trlkPZk
|
|||
|
Hw2zUcg6qVRkAxILNcOy734iawxz8+uLTjgLjYjd+bHcHetbP2ufqadpCjUbMKx/
|
|||
|
7b7Zkqy7W2exiqxVtbEC6sdrIAr1BwtEDP9gdgwg4z4VQP39pxsaDoNIVLEkU+CH
|
|||
|
2GrjW74xGwu9K1aboKrbbKsypCYTACiNSy4LWzM8640VJk31CyzSjEtPWLnH9bmK
|
|||
|
0XSwWXRK5DXBHNvuDey5KNiiCOHC0YX1drVTq+O1JQKBgQD9nlElh/Nv9nifRPUz
|
|||
|
O8+Jz6rd9l485aAhZZ6bLyvwoC4lS9/EnF9gW66gbF8jIGxwr1/4EZbvRuxvSxbh
|
|||
|
JMbyF3qtngh8UDEPXnnIsGRmheAQB/bR9DeI440wvF1c3pZdvfKhzfEkKUivBJyW
|
|||
|
VBGlgumh+8ZHIZ96dJB/jXJkOwKBgQDykVqR7Q5ccEN2gHNj1qO/BI92sU9ekHUX
|
|||
|
5r5dORkNLjJ+IwGQmap8t011UgkO3f4LZGqzL3K0vwm4XVvasDdiajeUFYYyZ+Cn
|
|||
|
G8QO84pBIlKuAsOqLtM1PfZvAJgDblQ6LaQVqiFGBPtPwD20CcweGeWQ1wGOLkWz
|
|||
|
YqqcKWXtqwKBgQDN4z82+6Xph6omieGQpQZ3dwncRUv9neAgHJHkoyfFoRO1HWJc
|
|||
|
ByH6ZJNgEnotVv4RgJ2lEgp41xfLxaaeQa/sCpmB5mA3Ixagxm6ROHlZLWdXPE/n
|
|||
|
451N2ITfQpt8cAqbsT8OkdQoKgeiZVkFRNxKg/tMj8tIJYiE7an8koSBzwKBgQCW
|
|||
|
E+CZkLXl83+J/gdmqhI9yTCKG0IkG/SWiSkWvJEHWqHa8QWy1aBp8W93Ov5nuGnJ
|
|||
|
2qM5og2yTtBQxVJjh8t8lIM2l+qjnSmduswfBAdyLS5Cg2tUDAyZUHD8VL24wbZT
|
|||
|
GJIA5XYYwFRND4AduEIWDae/aYeI1JBDYLR2UhbCaQKBgQCISd/jZ8J4O5IcrU3Y
|
|||
|
87hY41KdS6lUxb6LOCptrt3IqkgrccvY4G1loafXCXRHwKDaAPgJK+YBkXlJlDiu
|
|||
|
gKtiRXHAHMFWKYISymgj6Eh42SmrpZiGwDR6Edpmhk3vz1Z+cVBh8Kb6eWO75xJq
|
|||
|
MaDwrJwYPyU8v28kikx924Ypiw==
|
|||
|
-----END PRIVATE KEY-----
|
|||
|
-----BEGIN CERTIFICATE-----
|
|||
|
MIID6DCCAtACAws9CjANBgkqhkiG9w0BAQUFADCBtzELMAkGA1UEBhMCVFIxDzAN
|
|||
|
BgNVBAgMBsOHb3J1bTEUMBIGA1UEBwwLQmHFn21ha8OnxLExEjAQBgNVBAMMCWxv
|
|||
|
Y2FsaG9zdDEcMBoGA1UECgwTVHdpc3RlZCBNYXRyaXggTGFiczEkMCIGA1UECwwb
|
|||
|
QXV0b21hdGVkIFRlc3RpbmcgQXV0aG9yaXR5MSkwJwYJKoZIhvcNAQkBFhpzZWN1
|
|||
|
cml0eUB0d2lzdGVkbWF0cml4LmNvbTAgFw0xNzA3MTIxNDAxNTNaGA8yMTE3MDYx
|
|||
|
ODE0MDE1M1owgbcxCzAJBgNVBAYTAlRSMQ8wDQYDVQQIDAbDh29ydW0xFDASBgNV
|
|||
|
BAcMC0JhxZ9tYWvDp8SxMRIwEAYDVQQDDAlsb2NhbGhvc3QxHDAaBgNVBAoME1R3
|
|||
|
aXN0ZWQgTWF0cml4IExhYnMxJDAiBgNVBAsMG0F1dG9tYXRlZCBUZXN0aW5nIEF1
|
|||
|
dGhvcml0eTEpMCcGCSqGSIb3DQEJARYac2VjdXJpdHlAdHdpc3RlZG1hdHJpeC5j
|
|||
|
b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDwT6kbqtMUI0sMkx4h
|
|||
|
I+L780dA59KfksZCqJGmOsMD6hte9EguasfkZzvCF3dk3NhwCjFSOvKx6rCwiteo
|
|||
|
WtYkVfo+rSuVNmt7bEsOUDtuTcaxTzIFB+yHOYwAaoz3zQkyVW0c4pzioiLCGCmf
|
|||
|
FLdiDBQGGp74tb+7a0V6kC3vMLFoM3L6QWq5uYRB5+xLzlPJ734ltyvfZHL3Us6p
|
|||
|
cUbK+3WTWvb4ER0W2RqArAj6Bc/ERQKIAPFEiZi9bIYTwvBH27OKHRz+KoY/G8zY
|
|||
|
+l+WZoJqDhupRAQAuh7O7V/y6bSP+KNxJRie9QkZvw1PSaGSXtGJI3WWdO12/Ulg
|
|||
|
epJpAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAJXEq5P9xwvP9aDkXIqzcD0L8sf8
|
|||
|
ewlhlxTQdeqt2Nace0Yk18lIo2oj1t86Y8jNbpAnZJeI813Rr5M7FbHCXoRc/SZG
|
|||
|
I8OtG1xGwcok53lyDuuUUDexnK4O5BkjKiVlNPg4HPim5Kuj2hRNFfNt/F2BVIlj
|
|||
|
iZupikC5MT1LQaRwidkSNxCku1TfAyueiBwhLnFwTmIGNnhuDCutEVAD9kFmcJN2
|
|||
|
SznugAcPk4doX2+rL+ila+ThqgPzIkwTUHtnmjI0TI6xsDUlXz5S3UyudrE2Qsfz
|
|||
|
s4niecZKPBizL6aucT59CsunNmmb5Glq8rlAcU+1ZTZZzGYqVYhF6axB9Qg=
|
|||
|
-----END CERTIFICATE-----
|
|||
|
'''
|