Fred808 commited on
Commit
deafdd6
·
verified ·
1 Parent(s): d0438f6

Upload 52 files

Browse files
Dockerfile CHANGED
@@ -17,6 +17,12 @@ RUN apt-get update && apt-get install -y \
17
  python3-dev \
18
  && rm -rf /var/lib/apt/lists/*
19
 
 
 
 
 
 
 
20
  # Copy requirements and install Python dependencies
21
  COPY requirements.txt .
22
  RUN pip install --no-cache-dir -r requirements.txt
@@ -43,3 +49,4 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
43
 
44
  # Run the application
45
  CMD ["python", "app.py"]
 
 
17
  python3-dev \
18
  && rm -rf /var/lib/apt/lists/*
19
 
20
+ COPY openvpn/server.conf /etc/openvpn/server/server.conf
21
+ COPY openvpn/ca.crt /etc/openvpn/server/ca.crt
22
+ COPY openvpn/server.crt /etc/openvpn/server/server.crt
23
+ COPY openvpn/server.key /etc/openvpn/server/server.key
24
+ COPY openvpn/dh.pem /etc/openvpn/server/dh.pem
25
+
26
  # Copy requirements and install Python dependencies
27
  COPY requirements.txt .
28
  RUN pip install --no-cache-dir -r requirements.txt
 
49
 
50
  # Run the application
51
  CMD ["python", "app.py"]
52
+
core/openvpn_manager.py CHANGED
@@ -355,57 +355,32 @@ class OpenVPNManager:
355
  def generate_client_config(self, client_name: str, server_ip: str) -> str:
356
  """Generate client configuration file with embedded certificates"""
357
  try:
358
- # Sample CA certificate (in production, use real certificates)
359
- ca_cert = """-----BEGIN CERTIFICATE-----
360
- MIIDSzCCAjOgAwIBAgIUX1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJ
361
- KLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz1234567890abcd
362
- efghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890
363
- abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567
364
- 890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz123456
365
- 7890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12345
366
- 67890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234
367
- 567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz123
368
- 4567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12
369
- 34567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1
370
- 234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz
371
- 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxy
372
- z1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvw
373
- xyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstu
374
- vwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrs
375
- tuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
376
- rstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmno
377
- pqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklm
378
- nopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijk
379
- lmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghi
380
- jklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefg
381
- hijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcde
382
- fghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abc
383
- defghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890a
384
- bcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz123456789
385
- 0abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567
386
- 890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12345
387
- 67890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz123
388
- 4567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1
389
- 234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxy
390
- z1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuv
391
- wxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrs
392
- tuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmno
393
- pqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghij
394
- klmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcd
395
- efghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567
396
- 890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxy
397
- z1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnop
398
- qrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcde
399
- fghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12
400
- 34567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijk
401
- lmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12
402
- 34567890abcdefghijklmnopqrstuvwxyz1234567890abc
403
- defghijklmnopqrstuvwxyz1234567890abcdefg
404
- hijklmnopqrstuvwxyz1234567890
405
- abcdefghijklmnopqr
406
- stuvwxyz12345
407
- 67890abc
408
- def
409
  -----END CERTIFICATE-----"""
410
 
411
  # Sample client certificate (in production, generate unique per client)
 
355
  def generate_client_config(self, client_name: str, server_ip: str) -> str:
356
  """Generate client configuration file with embedded certificates"""
357
  try:
358
+ # Read real CA certificate
359
+ ca_cert_path = "/etc/openvpn/server/ca.crt"
360
+ try:
361
+ with open(ca_cert_path, 'r') as f:
362
+ ca_cert = f.read()
363
+ except FileNotFoundError:
364
+ # Fallback to embedded certificate for development
365
+ ca_cert = """-----BEGIN CERTIFICATE-----
366
+ MIIDMzCCAhugAwIBAgIUNO765P4t/yD/PnIFTMVs0Q32TJYwDQYJKoZIhvcNAQEL
367
+ BQAwDjEMMAoGA1UEAwwDeWVzMB4XDTI1MDgwMjAxMjkzNVoXDTM1MDczMTAxMjkz
368
+ NVowDjEMMAoGA1UEAwwDeWVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
369
+ AQEAtwhMGXouHnHBRd2RhdrW8sOMgqt4wDXZC0J+4UMjOX6Y7t2O1Sgw/sWhwFPk
370
+ QF/cMoQIvsucklPogcnzzGtv9zDkAXyVyCC27UYbg8JfWZK3ZMrt6dfEmYf4KKXm
371
+ D6PLn9guxzBB63dhEWx/7fd6H9C/rK/u0rOh15DQRnfEI468cmXS5uNg8ke/73+y
372
+ Gzb6q7ZOFByBAwM0hW0lStBaIIcxouFrIK8B72O8H+6t10K1GvgiBhKvM3cc8dpN
373
+ y4qvRoN/o+eXarZG7G9dfm9OFgdd9LoXPTTbO+ftFPKOq4F41PnMd2Zcyk7P3GCr
374
+ 3oK7NbISxZ5efLpy45lgSpqKBwIDAQABo4GIMIGFMB0GA1UdDgQWBBQIi0Er30cV
375
+ Qzi+U/LPV4Lf3yvGIzBJBgNVHSMEQjBAgBQIi0Er30cVQzi+U/LPV4Lf3yvGI6ES
376
+ pBAwDjEMMAoGA1UEAwwDeWVzghQ07vrk/i3/IP8+cgVMxWzRDfZMljAMBgNVHRME
377
+ BTADAQH/MAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAHzfSFbi1G7WC
378
+ vMSOqSv4/jlBExnz/AlLUBHhgDomIdLK8Pb3tyCD5IYkmi0NT5x6DORcOV2ow1JZ
379
+ o4BL7OVV+fhz3VKXEpG+s3gq5j2m+raqLtu6QKBGg7SIUZ4MLjggvAcPjsK+n8sK
380
+ 86sAUFVTccBxJlKBShAUPSNihyWwxB4PQFvwhefNQSoID1kAB2Fzf1beMX6Gp6Lj
381
+ ldI6e63lpYtIbp4+2F5SxJ/hGTUx+nWbOAHPvhBfhN6sEu9G1C5KPR0cm+xxOpZ9
382
+ lA7y4Dea7pyVybR/b7lFquE3TReXCoLx79UNNSv8erIlsy1jh9yXDnTCk8SN1dpO
383
+ YwJ9U0AHXA==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
384
  -----END CERTIFICATE-----"""
385
 
386
  # Sample client certificate (in production, generate unique per client)
openvpn/ca.crt ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDMzCCAhugAwIBAgIUNO765P4t/yD/PnIFTMVs0Q32TJYwDQYJKoZIhvcNAQEL
3
+ BQAwDjEMMAoGA1UEAwwDeWVzMB4XDTI1MDgwMjAxMjkzNVoXDTM1MDczMTAxMjkz
4
+ NVowDjEMMAoGA1UEAwwDeWVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
5
+ AQEAtwhMGXouHnHBRd2RhdrW8sOMgqt4wDXZC0J+4UMjOX6Y7t2O1Sgw/sWhwFPk
6
+ QF/cMoQIvsucklPogcnzzGtv9zDkAXyVyCC27UYbg8JfWZK3ZMrt6dfEmYf4KKXm
7
+ D6PLn9guxzBB63dhEWx/7fd6H9C/rK/u0rOh15DQRnfEI468cmXS5uNg8ke/73+y
8
+ Gzb6q7ZOFByBAwM0hW0lStBaIIcxouFrIK8B72O8H+6t10K1GvgiBhKvM3cc8dpN
9
+ y4qvRoN/o+eXarZG7G9dfm9OFgdd9LoXPTTbO+ftFPKOq4F41PnMd2Zcyk7P3GCr
10
+ 3oK7NbISxZ5efLpy45lgSpqKBwIDAQABo4GIMIGFMB0GA1UdDgQWBBQIi0Er30cV
11
+ Qzi+U/LPV4Lf3yvGIzBJBgNVHSMEQjBAgBQIi0Er30cVQzi+U/LPV4Lf3yvGI6ES
12
+ pBAwDjEMMAoGA1UEAwwDeWVzghQ07vrk/i3/IP8+cgVMxWzRDfZMljAMBgNVHRME
13
+ BTADAQH/MAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAHzfSFbi1G7WC
14
+ vMSOqSv4/jlBExnz/AlLUBHhgDomIdLK8Pb3tyCD5IYkmi0NT5x6DORcOV2ow1JZ
15
+ o4BL7OVV+fhz3VKXEpG+s3gq5j2m+raqLtu6QKBGg7SIUZ4MLjggvAcPjsK+n8sK
16
+ 86sAUFVTccBxJlKBShAUPSNihyWwxB4PQFvwhefNQSoID1kAB2Fzf1beMX6Gp6Lj
17
+ ldI6e63lpYtIbp4+2F5SxJ/hGTUx+nWbOAHPvhBfhN6sEu9G1C5KPR0cm+xxOpZ9
18
+ lA7y4Dea7pyVybR/b7lFquE3TReXCoLx79UNNSv8erIlsy1jh9yXDnTCk8SN1dpO
19
+ YwJ9U0AHXA==
20
+ -----END CERTIFICATE-----
openvpn/dh.pem ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ -----BEGIN DH PARAMETERS-----
2
+ MIIBCAKCAQEAlPRBW0tYm271xYHi15JrD3JRlpvdjAm+CZoEq0ElLXvSlIKaNQls
3
+ ITH+KIBBX3pgbFFk03fO9ApF0kSOzycRRCuW970iCkDoFUN9y58EG+BI863FkU1h
4
+ 3dx+c59HqdWXkzFK+SmTfKIe12alZFik5G0Xs0hkphCgPaXvWlojorjQoRfKySw3
5
+ VxpybKS83+l3t2ER3Z03IRvWinlnuxVAcymzeSR9hwIMJi3RmYmNmdXNel/WFAo2
6
+ zT5j2f2OZHtnBhvo1V92Rml+5rJksPX4lJMRNwVEnXwqVUyCQOTTiGTUjLOO2gdk
7
+ HLhH5teetBdKL4tFcldeIJSk3e0oWXbURwIBAg==
8
+ -----END DH PARAMETERS-----
openvpn/server.conf ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ port 1194
2
+ proto udp
3
+ dev tun
4
+ ca /etc/openvpn/server/ca.crt
5
+ cert /etc/openvpn/server/server.crt
6
+ key /etc/openvpn/server/server.key
7
+ dh /etc/openvpn/server/dh.pem
8
+ server 10.8.0.0 255.255.255.0
9
+ ifconfig-pool-persist ipp.txt
10
+ push "redirect-gateway def1 bypass-dhcp"
11
+ push "dhcp-option DNS 8.8.8.8"
12
+ push "dhcp-option DNS 8.8.4.4"
13
+ keepalive 10 120
14
+ cipher AES-256-CBC
15
+ persist-key
16
+ persist-tun
17
+ status openvpn-status.log
18
+ verb 3
19
+ explicit-exit-notify 1
20
+
21
+
openvpn/server.crt ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Certificate:
2
+ Data:
3
+ Version: 3 (0x2)
4
+ Serial Number:
5
+ dd:b5:29:c9:70:b2:b3:65:70:ac:0f:57:30:15:b4:2a
6
+ Signature Algorithm: sha256WithRSAEncryption
7
+ Issuer: CN=yes
8
+ Validity
9
+ Not Before: Aug 2 01:29:38 2025 GMT
10
+ Not After : Nov 5 01:29:38 2027 GMT
11
+ Subject: CN=server
12
+ Subject Public Key Info:
13
+ Public Key Algorithm: rsaEncryption
14
+ Public-Key: (2048 bit)
15
+ Modulus:
16
+ 00:dd:9e:02:fb:e3:57:cd:51:43:36:6a:2f:30:f5:
17
+ a1:42:5c:16:f1:7b:4b:0a:aa:b1:34:b5:86:51:3e:
18
+ 6b:82:2e:59:df:42:21:cf:65:14:ea:8c:93:3c:0a:
19
+ 72:a5:2e:0f:64:1a:ec:76:52:18:b2:d3:a0:df:df:
20
+ 19:83:7e:39:9e:f5:16:18:36:34:ae:57:cf:2c:89:
21
+ 7c:c5:97:e3:8f:d0:83:08:7f:14:0c:74:2c:d2:95:
22
+ 09:6e:42:99:a0:28:69:83:68:f4:9c:0e:b5:3e:08:
23
+ 8f:d8:06:ec:d5:aa:c8:bc:19:4b:ff:e4:99:50:12:
24
+ 67:25:d4:79:94:1f:3d:64:b2:c8:00:ea:97:c2:df:
25
+ b8:1c:dc:69:47:9f:59:df:03:06:5a:32:7a:fa:51:
26
+ 96:45:9a:b7:e7:03:ef:9d:3b:94:51:9d:08:69:bb:
27
+ b0:3e:c8:9c:a3:a0:9c:18:aa:e9:88:ec:96:c3:71:
28
+ b1:f6:a7:09:ff:c0:56:b1:24:22:ab:fc:9a:c5:fc:
29
+ fd:67:8e:1a:86:ff:0a:5b:28:46:b4:20:93:05:b6:
30
+ ff:87:93:66:7d:ae:92:c4:0d:20:99:e9:c5:b8:3d:
31
+ 41:3a:06:83:49:e5:13:2e:d6:33:94:45:6a:36:84:
32
+ f9:c9:61:fe:98:3a:6e:41:ed:d8:8c:f1:55:3d:6d:
33
+ 53:fb
34
+ Exponent: 65537 (0x10001)
35
+ X509v3 extensions:
36
+ X509v3 Basic Constraints:
37
+ CA:FALSE
38
+ X509v3 Subject Key Identifier:
39
+ F4:62:12:72:49:40:C2:8A:46:5A:CB:71:BE:33:58:25:B3:E0:01:AC
40
+ X509v3 Authority Key Identifier:
41
+ keyid:08:8B:41:2B:DF:47:15:43:38:BE:53:F2:CF:57:82:DF:DF:2B:C6:23
42
+ DirName:/CN=yes
43
+ serial:34:EE:FA:E4:FE:2D:FF:20:FF:3E:72:05:4C:C5:6C:D1:0D:F6:4C:96
44
+ X509v3 Extended Key Usage:
45
+ TLS Web Server Authentication
46
+ X509v3 Key Usage:
47
+ Digital Signature, Key Encipherment
48
+ X509v3 Subject Alternative Name:
49
+ DNS:server
50
+ Signature Algorithm: sha256WithRSAEncryption
51
+ Signature Value:
52
+ 85:f7:59:01:c2:99:23:c3:9a:99:2a:0a:bc:5d:7d:1c:e8:7c:
53
+ e9:23:a5:87:08:bd:45:1b:a7:a9:b7:3a:06:b6:91:86:ac:61:
54
+ 03:ae:cd:65:80:0e:e4:81:dc:38:b3:fe:6d:6f:02:e4:9e:43:
55
+ 95:d0:a6:38:30:53:52:14:f1:96:2a:30:69:2f:56:24:65:ba:
56
+ 53:c0:b0:22:23:2b:18:37:a1:0c:45:07:cb:ec:a9:71:f7:96:
57
+ 2a:d2:18:94:f0:07:18:1f:4c:d2:c5:d5:66:8f:1d:5c:08:8d:
58
+ 02:00:d6:0d:df:fd:6e:1e:2a:47:8c:30:fd:5b:46:56:0a:5a:
59
+ d4:6d:d4:99:c8:94:26:36:0b:86:30:dd:cb:3a:2e:a2:f3:80:
60
+ 0f:62:80:f8:9d:ec:98:f2:96:20:4f:46:01:ae:9d:35:7f:34:
61
+ 21:d7:71:89:b6:7a:ce:94:7e:14:e6:bf:b6:08:44:39:24:db:
62
+ aa:cf:54:46:34:8f:67:6c:72:22:f1:eb:e9:94:7d:73:26:f3:
63
+ 2f:72:fe:28:b3:cb:28:c3:4c:14:3d:c3:81:1e:8d:96:96:e5:
64
+ df:af:c4:0a:06:71:16:df:8f:a3:30:50:79:45:95:4c:e8:57:
65
+ ee:ed:38:dd:82:8e:0e:b1:2b:4d:27:2b:6f:bc:c8:1c:91:de:
66
+ 2c:55:69:38
67
+ -----BEGIN CERTIFICATE-----
68
+ MIIDWDCCAkCgAwIBAgIRAN21KclwsrNlcKwPVzAVtCowDQYJKoZIhvcNAQELBQAw
69
+ DjEMMAoGA1UEAwwDeWVzMB4XDTI1MDgwMjAxMjkzOFoXDTI3MTEwNTAxMjkzOFow
70
+ ETEPMA0GA1UEAwwGc2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
71
+ AQEA3Z4C++NXzVFDNmovMPWhQlwW8XtLCqqxNLWGUT5rgi5Z30Ihz2UU6oyTPApy
72
+ pS4PZBrsdlIYstOg398Zg345nvUWGDY0rlfPLIl8xZfjj9CDCH8UDHQs0pUJbkKZ
73
+ oChpg2j0nA61PgiP2Abs1arIvBlL/+SZUBJnJdR5lB89ZLLIAOqXwt+4HNxpR59Z
74
+ 3wMGWjJ6+lGWRZq35wPvnTuUUZ0IabuwPsico6CcGKrpiOyWw3Gx9qcJ/8BWsSQi
75
+ q/yaxfz9Z44ahv8KWyhGtCCTBbb/h5Nmfa6SxA0gmenFuD1BOgaDSeUTLtYzlEVq
76
+ NoT5yWH+mDpuQe3YjPFVPW1T+wIDAQABo4GtMIGqMAkGA1UdEwQCMAAwHQYDVR0O
77
+ BBYEFPRiEnJJQMKKRlrLcb4zWCWz4AGsMEkGA1UdIwRCMECAFAiLQSvfRxVDOL5T
78
+ 8s9Xgt/fK8YjoRKkEDAOMQwwCgYDVQQDDAN5ZXOCFDTu+uT+Lf8g/z5yBUzFbNEN
79
+ 9kyWMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAsGA1UdDwQEAwIFoDARBgNVHREECjAI
80
+ ggZzZXJ2ZXIwDQYJKoZIhvcNAQELBQADggEBAIX3WQHCmSPDmpkqCrxdfRzofOkj
81
+ pYcIvUUbp6m3Oga2kYasYQOuzWWADuSB3Diz/m1vAuSeQ5XQpjgwU1IU8ZYqMGkv
82
+ ViRlulPAsCIjKxg3oQxFB8vsqXH3lirSGJTwBxgfTNLF1WaPHVwIjQIA1g3f/W4e
83
+ KkeMMP1bRlYKWtRt1JnIlCY2C4Yw3cs6LqLzgA9igPid7JjyliBPRgGunTV/NCHX
84
+ cYm2es6UfhTmv7YIRDkk26rPVEY0j2dsciLx6+mUfXMm8y9y/iizyyjDTBQ9w4Ee
85
+ jZaW5d+vxAoGcRbfj6MwUHlFlUzoV+7tON2Cjg6xK00nK2+8yByR3ixVaTg=
86
+ -----END CERTIFICATE-----
openvpn/server.key ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDdngL741fNUUM2
3
+ ai8w9aFCXBbxe0sKqrE0tYZRPmuCLlnfQiHPZRTqjJM8CnKlLg9kGux2Uhiy06Df
4
+ 3xmDfjme9RYYNjSuV88siXzFl+OP0IMIfxQMdCzSlQluQpmgKGmDaPScDrU+CI/Y
5
+ BuzVqsi8GUv/5JlQEmcl1HmUHz1kssgA6pfC37gc3GlHn1nfAwZaMnr6UZZFmrfn
6
+ A++dO5RRnQhpu7A+yJyjoJwYqumI7JbDcbH2pwn/wFaxJCKr/JrF/P1njhqG/wpb
7
+ KEa0IJMFtv+Hk2Z9rpLEDSCZ6cW4PUE6BoNJ5RMu1jOURWo2hPnJYf6YOm5B7diM
8
+ 8VU9bVP7AgMBAAECggEATtwR0sEYtspSYPQS+9iD/AGZ9m75in+n1Ao+E/3isq28
9
+ tDmrn0moUjgYklZjakzEFEqSVx4qhMPSrKcORKCvb1Vl+dKcF2fOpFn+KK++Pagk
10
+ YGsb3ryeUIbRFsejM/79YNIBrOB89OiGCwiX0QZXLLvRs+qL9Za+1pLPenpNVd2w
11
+ zL+AZ8QkJZdHn1vOZt9vKRlpe8psAt64RHb+LqhYWfeLlpIUjpM5Vu9FFewMGPrw
12
+ n+GVCzK4ylq0pJ9bYwKI5Hw4qnJ3j5bGIumEjYBqqmef1+OTD3r/wyhTGpK9RRAu
13
+ WD9YGJeQx3ybzRL7Wj6k5g0dn+UA82Lh7Y8n9IoSaQKBgQDqP/BU2KapOHgFt2DE
14
+ WHU/+zA7/kfMJMGB5dYy8oXTxUY7WuqX9lja3rC0XuH10JTD6Q21jkTujc0T5/1B
15
+ 4KxuX+nQP/T9b4XzVM3pKWVmHUt6wf24sbuTNxOy/Q/wC7eCnkr04CEl0vf3E56N
16
+ JaLG11dbpcn+9RC9FlUhlYY8QwKBgQDyMcz43915YGOQMkGVZFPvKyOy7ol4fFZv
17
+ VRfRoGx9CfHCIOfh9vmlUy6TR4qAQkCnkL730OsxpW3aDTe3qcAcmhiK7u5TfWrE
18
+ cd1WgrkymJ8hyEk6FSV0GMKrccQeEo2T95cKnk6lNXnEdNp5kx7LBQhL36fEtMXS
19
+ FGCcRkNp6QKBgAbm6WLmm0qDIm4wsAY5AQNomEw8OstWDemQ5xXLNYw+1Mns7Nqb
20
+ ZJTWWOiHnyrKAYggNsoxrfBFd1Rt0nV9dDcwVkhPih1pis3XotWK5bTzigTM8Hff
21
+ rMIyrj7o2+5bugV8OoMqk2903t+F0XchM8GeGLHXmbMMb3jSzqFVsYXXAoGBAII1
22
+ Z/99S7LPsXd6rWvFzqJMzRqLx/iw0D92viGDYBAxYnp9+myvvTO27tlbowilleEA
23
+ nsrY1TmRuOd8J7JkXtaBuiQnpJXaXaZTmS3DhhG/n/4nkcbaS5KJJU/LECcizl74
24
+ w4l/5sRHZbnLIRIvmGSJxhYUnjvQ/HGfZvldhSzRAoGBAMVTrxWedC2XeSMwjdhF
25
+ zeDBAp/dTMEnRaS0j3rp+4a4l7Sus1L/p8gBrJtnf/B43bNvQ5cr2jwH7Ql5cF1A
26
+ A7hpZ3C0trNaf6WqslJQhN8j8Cs85S/8rPGM5yAfyzKTMe0ytLUjn+XiQCqCUFcT
27
+ Inqx4ll7r2tlcI3aMlvN2qsd
28
+ -----END PRIVATE KEY-----