Skip to content

Commit a6bac57

Browse files
committed
feat(server): 支持https
1 parent 1880c2f commit a6bac57

File tree

6 files changed

+286
-12
lines changed

6 files changed

+286
-12
lines changed

lib/commands/server.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
55
var connect = require('connect'),
66
fs = require('fs'),
77
http = require('http'),
8+
https = require('https'),
89
serveStatic = require('serve-static'),
910
serveIndex = require('serve-index'),
1011
moment = require('moment'),
@@ -27,8 +28,8 @@ exports.setOptions = function (optimist) {
2728
optimist.describe('m', '加载项目中间件');
2829
optimist.alias('l', 'livereload');
2930
optimist.describe('l', '自动刷新');
30-
// optimist.alias('s', 'https');
31-
// optimist.describe('s', '使用https协议');
31+
optimist.alias('s', 'https');
32+
optimist.describe('s', '使用https协议');
3233
};
3334

3435
exports.run = function (options) {
@@ -37,7 +38,7 @@ exports.run = function (options) {
3738
hot = options.h || options.hot,
3839
proxy = options.x || options.proxy,
3940
middlewares = options.m || options.middlewares,
40-
https = options.s || options.https,
41+
isHttps = options.s || options.https,
4142
enableLivereload = options.l || options.livereload,
4243
port = options.p || options.port || 80;
4344

@@ -259,16 +260,27 @@ exports.run = function (options) {
259260

260261
app.use(serveIndex(cwd));
261262

262-
var httpServer = http.createServer(app);
263-
httpServer.on('error', function (e) {
263+
var server = void 0;
264+
265+
if (!isHttps) {
266+
server = http.createServer(app);
267+
} else {
268+
var httpsOpts = {
269+
key: fs.readFileSync(sysPath.join(__dirname, '../config/https/server.key')),
270+
cert: fs.readFileSync(sysPath.join(__dirname, '../config/https/server.crt'))
271+
};
272+
server = https.createServer(httpsOpts, app);
273+
}
274+
275+
server.on('error', function (e) {
264276
if (e.code === 'EACCES') {
265277
warn('权限不足, 请使用sudo执行');
266278
} else if (e.code === 'EADDRINUSE') {
267279
warn('端口 ' + port + ' 已经被占用, 请关闭占用该端口的程序或者使用其它端口.');
268280
}
269281
process.exit(1);
270282
});
271-
httpServer.listen(port, function () {
283+
server.listen(port, function () {
272284
warn('Listening on port ' + port);
273285
});
274286

lib/config/https/server.crt

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
Certificate:
2+
Data:
3+
Version: 3 (0x2)
4+
Serial Number: 4097 (0x1001)
5+
Signature Algorithm: sha256WithRSAEncryption
6+
Issuer: C=CN, ST=Beijing, L=Beijing, O=Qunar, CN=JerryProxyCA/emailAddress=jiao.shen@qunar.com
7+
Validity
8+
Not Before: Jul 31 18:56:37 2016 GMT
9+
Not After : Jul 26 18:56:37 2036 GMT
10+
Subject: C=CN, ST=Beijing, O=Qunar, CN=www.qunar.com/emailAddress=jiao.shen@qunar.com
11+
Subject Public Key Info:
12+
Public Key Algorithm: rsaEncryption
13+
RSA Public Key: (2048 bit)
14+
Modulus (2048 bit):
15+
00:ad:e3:7d:de:c0:70:60:7d:4d:cc:38:72:e1:26:
16+
c7:a2:aa:d1:fb:4f:b5:fb:18:e9:d3:66:f7:2d:56:
17+
e7:10:cb:6f:6b:c7:80:59:4b:18:23:20:20:f0:ea:
18+
41:4a:36:c5:e1:65:57:60:0a:b2:c3:90:47:61:e1:
19+
53:67:e9:88:7a:7a:cd:ae:20:99:03:62:db:da:df:
20+
29:c9:8e:58:97:eb:72:f4:e8:31:4d:8f:d0:69:e2:
21+
7f:58:f0:a0:93:5e:d5:10:7a:96:91:9f:08:bc:2d:
22+
48:c3:21:64:d1:2c:0b:9b:40:50:86:9c:a7:d6:66:
23+
37:dc:7b:36:62:6d:ec:2a:44:8a:2c:83:6a:c5:42:
24+
d6:9f:4f:96:5a:31:a9:3f:19:42:17:1a:8e:ba:67:
25+
cc:c8:8f:81:10:d7:e8:ec:e5:ac:8e:b6:21:50:fe:
26+
27:19:89:10:4c:e0:00:3f:fd:c9:fe:84:3d:79:6f:
27+
73:a6:1d:7e:66:79:07:84:56:33:84:63:1a:c5:e2:
28+
1e:7a:ad:33:96:aa:fa:9c:f4:f9:25:82:7f:48:97:
29+
09:e5:9e:51:78:34:25:48:81:1b:a5:7c:f5:75:90:
30+
7b:05:16:bd:40:71:04:9b:7e:7e:85:1d:3a:04:04:
31+
be:fc:92:3e:3f:a3:48:92:92:7e:0e:80:32:77:a6:
32+
5d:2f
33+
Exponent: 65537 (0x10001)
34+
X509v3 extensions:
35+
X509v3 Basic Constraints:
36+
CA:FALSE
37+
X509v3 Key Usage:
38+
Digital Signature, Non Repudiation, Key Encipherment
39+
X509v3 Subject Alternative Name:
40+
DNS:*.qunar.com, DNS:*.qunarzz.com, DNS:qunarzz.com
41+
Signature Algorithm: sha256WithRSAEncryption
42+
9c:e5:6a:8d:5e:4d:ab:ef:29:25:ad:ff:42:a5:56:fe:dc:9a:
43+
26:7a:a4:49:f2:e1:32:d5:2e:d7:97:a0:2a:7e:93:ae:67:9d:
44+
29:75:ac:4b:e0:57:e4:51:00:bb:c9:b3:73:16:a9:ce:08:2a:
45+
3e:4a:ef:a0:5b:b6:37:37:63:ee:bd:c9:72:83:e0:7a:7e:cd:
46+
da:e6:80:bb:5b:76:6b:e5:c9:99:18:ad:86:5d:0b:80:73:b3:
47+
e5:b0:25:4e:f0:0a:18:a9:9b:4c:6f:65:f5:40:3b:bd:8c:bf:
48+
fe:9d:27:6b:53:b2:60:72:75:f0:d8:c2:e8:6f:15:d6:4d:61:
49+
5d:ed:ee:b5:a0:b0:a5:5d:77:de:0f:1d:32:63:cd:6a:38:8d:
50+
6f:e6:e9:95:c8:91:a0:ed:93:a9:e2:97:34:bd:3c:cb:d8:49:
51+
8d:1a:ff:0a:ed:c6:84:65:b9:7e:70:5b:9c:58:8b:04:db:dc:
52+
9f:cd:83:36:f1:bd:c8:b9:c3:81:f3:d3:ae:17:d3:35:ba:f9:
53+
20:87:80:37:a8:96:7a:ee:f3:71:7f:63:24:07:cd:c4:18:33:
54+
f6:d0:47:61:fb:63:de:b2:f5:8c:6e:30:e7:37:13:89:59:87:
55+
45:cc:53:72:23:e0:55:4f:d5:6d:0d:fe:7d:11:03:d8:2f:9c:
56+
9b:b4:df:dd:1e:6c:38:91:6e:6e:f3:3f:74:d3:cb:97:1e:9f:
57+
28:b6:f4:12:1e:64:45:41:04:1c:03:1e:c1:d4:99:e0:00:41:
58+
0f:95:bf:fc:2c:75:fa:b8:33:17:fd:c0:ef:80:10:48:ea:ad:
59+
e9:2e:87:d4:96:2a:f8:72:32:e5:60:00:2c:7c:1e:28:f4:25:
60+
4a:ea:ca:af:bf:1e:a3:b8:29:e4:cc:21:4d:b7:2b:fe:9c:e5:
61+
33:fe:4f:5f:9a:8e:11:aa:d8:b9:df:4d:5d:e3:8b:40:a4:3f:
62+
10:bf:a4:03:ca:64:63:b5:5d:8c:aa:01:b0:1d:57:be:82:cd:
63+
9d:8e:9b:de:4e:3a:16:2b:5f:50:92:20:47:91:56:eb:41:29:
64+
16:82:45:ac:7e:03:d1:1e:b4:be:97:f7:0f:d3:99:07:d0:54:
65+
53:d9:61:4e:ea:cb:88:89:37:c9:3f:db:d5:3e:11:7e:f3:a8:
66+
a4:17:0c:fc:31:b2:dc:e6:15:6a:1f:b6:b0:5a:ce:83:2e:6e:
67+
6a:b7:59:23:07:8a:9a:b5:c9:d0:3d:fb:11:6e:cd:40:78:e5:
68+
7e:0d:e6:f8:f8:e5:66:b5:e0:76:d7:3a:1a:f8:69:78:ce:5f:
69+
75:87:a0:42:6f:8d:d0:fa:72:ec:40:fe:b6:a8:6f:b7:59:3c:
70+
c0:20:78:d5:b5:dd:fc:01
71+
-----BEGIN CERTIFICATE-----
72+
MIIEsTCCApmgAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCQ04x
73+
EDAOBgNVBAgTB0JlaWppbmcxEDAOBgNVBAcTB0JlaWppbmcxDjAMBgNVBAoTBVF1
74+
bmFyMRUwEwYDVQQDEwxKZXJyeVByb3h5Q0ExIjAgBgkqhkiG9w0BCQEWE2ppYW8u
75+
c2hlbkBxdW5hci5jb20wHhcNMTYwNzMxMTg1NjM3WhcNMzYwNzI2MTg1NjM3WjBr
76+
MQswCQYDVQQGEwJDTjEQMA4GA1UECBMHQmVpamluZzEOMAwGA1UEChMFUXVuYXIx
77+
FjAUBgNVBAMTDXd3dy5xdW5hci5jb20xIjAgBgkqhkiG9w0BCQEWE2ppYW8uc2hl
78+
bkBxdW5hci5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt433e
79+
wHBgfU3MOHLhJseiqtH7T7X7GOnTZvctVucQy29rx4BZSxgjICDw6kFKNsXhZVdg
80+
CrLDkEdh4VNn6Yh6es2uIJkDYtva3ynJjliX63L06DFNj9Bp4n9Y8KCTXtUQepaR
81+
nwi8LUjDIWTRLAubQFCGnKfWZjfcezZibewqRIosg2rFQtafT5ZaMak/GUIXGo66
82+
Z8zIj4EQ1+js5ayOtiFQ/icZiRBM4AA//cn+hD15b3OmHX5meQeEVjOEYxrF4h56
83+
rTOWqvqc9Pklgn9IlwnlnlF4NCVIgRulfPV1kHsFFr1AcQSbfn6FHToEBL78kj4/
84+
o0iSkn4OgDJ3pl0vAgMBAAGjTjBMMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMDIG
85+
A1UdEQQrMCmCCyoucXVuYXIuY29tgg0qLnF1bmFyenouY29tggtxdW5hcnp6LmNv
86+
bTANBgkqhkiG9w0BAQsFAAOCAgEAnOVqjV5Nq+8pJa3/QqVW/tyaJnqkSfLhMtUu
87+
15egKn6TrmedKXWsS+BX5FEAu8mzcxapzggqPkrvoFu2Nzdj7r3JcoPgen7N2uaA
88+
u1t2a+XJmRithl0LgHOz5bAlTvAKGKmbTG9l9UA7vYy//p0na1OyYHJ18NjC6G8V
89+
1k1hXe3utaCwpV133g8dMmPNajiNb+bplciRoO2TqeKXNL08y9hJjRr/Cu3GhGW5
90+
fnBbnFiLBNvcn82DNvG9yLnDgfPTrhfTNbr5IIeAN6iWeu7zcX9jJAfNxBgz9tBH
91+
Yftj3rL1jG4w5zcTiVmHRcxTciPgVU/VbQ3+fRED2C+cm7Tf3R5sOJFubvM/dNPL
92+
lx6fKLb0Eh5kRUEEHAMewdSZ4ABBD5W//Cx1+rgzF/3A74AQSOqt6S6H1JYq+HIy
93+
5WAALHweKPQlSurKr78eo7gp5MwhTbcr/pzlM/5PX5qOEarYud9NXeOLQKQ/EL+k
94+
A8pkY7VdjKoBsB1XvoLNnY6b3k46FitfUJIgR5FW60EpFoJFrH4D0R60vpf3D9OZ
95+
B9BUU9lhTurLiIk3yT/b1T4RfvOopBcM/DGy3OYVah+2sFrOgy5uardZIweKmrXJ
96+
0D37EW7NQHjlfg3m+PjlZrXgdtc6GvhpeM5fdYegQm+N0Ppy7ED+tqhvt1k8wCB4
97+
1bXd/AE=
98+
-----END CERTIFICATE-----

lib/config/https/server.key

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEpAIBAAKCAQEAreN93sBwYH1NzDhy4SbHoqrR+0+1+xjp02b3LVbnEMtva8eA
3+
WUsYIyAg8OpBSjbF4WVXYAqyw5BHYeFTZ+mIenrNriCZA2Lb2t8pyY5Yl+ty9Ogx
4+
TY/QaeJ/WPCgk17VEHqWkZ8IvC1IwyFk0SwLm0BQhpyn1mY33Hs2Ym3sKkSKLINq
5+
xULWn0+WWjGpPxlCFxqOumfMyI+BENfo7OWsjrYhUP4nGYkQTOAAP/3J/oQ9eW9z
6+
ph1+ZnkHhFYzhGMaxeIeeq0zlqr6nPT5JYJ/SJcJ5Z5ReDQlSIEbpXz1dZB7BRa9
7+
QHEEm35+hR06BAS+/JI+P6NIkpJ+DoAyd6ZdLwIDAQABAoIBAQCJdCOCWkI6s7I0
8+
tYZx3fK+7iLQcmEa3MWw+1p2N5StnPI1k10suISa94GyjqoPnR5snmwkGjDXEAyt
9+
Ha2NnXfpwXsmotPxbkr2R6PDlMcJR+/2Ejku43jOymD6EDQOak8oGI8/CySfg3hZ
10+
7uK/yf5eucctsVWmz+RmX+tMgTHG8lsdLSzEUJMncd0vxz5zHSXPZJkb5jnwJkg4
11+
mv7t0dau6PbNXllctYLxTFcfEuHTNzdL5u6HCIPn7smcG/RsWXKjhWd3kwGvNJdJ
12+
PiPiFdlpmb1qOWFkbEVYsAOvY5K4744VoW8ShFHrAh7NRUnpzKzcvtIXW67qNmPC
13+
bs/Clw15AoGBANwvgV8+Um00sHaBBWam684XnnzcIFFIQIrUtXeSTHRLrpOJK4ms
14+
WTXo4HOSMdzHcfcz83Zu48sgTs4DKXgsA2Sis/UzaAVPUgIN9TWdUvvtsNOWp2zJ
15+
x/hEAh3mQ31SYe7zW1PHPx2cTMqM6W+JjO3u9y1OFGyUjkv1P+n0nbH7AoGBAMos
16+
MGSEoncp+G5T6RFmIsjZAJinMsrvibsGbZZRaww/iFfrmqmWZ88C0zder7Xl9ao9
17+
VF19AXC88WS5cmz1vXGm3nfOO6v9/jI0CWtIm7KAMBlXRvgQNC2+gt+bKg+Qx8bD
18+
x9Tsij3GWcP7vXQN3kwfL0GEyhfSIOMGHovCnQ9dAoGBAKOYNEJEts9m53mU0SN9
19+
ABTHHb1dfDGIQlQkSJQHwgBiPtplf1CyGjJgzWtxAtUr5rQqCElFiMBiR8rvNH+S
20+
DA9Yh+a2BCJ11dOq9TaZpo+CAfCjrc+5eHcwaHY4oIpbjGIStBdiIbXpbHDOE58I
21+
jwo1k7c4nRozoiozlQJJ+mTDAoGAUEVtTWvQKeozJnMQlgTsiLyIXRP9uc+T6vsp
22+
Zcab7zgGhYoZVX5PZ0Ui4dgpgdp1SQuixJ/Og5mxaqGrChIkDs0HhaAP10E4vWwl
23+
1T/1+dClyFn75qBgZ00+H1Q3RgjhGU1AuYzVcqOfno4EceDTw3uaQrRbnUukHR+f
24+
3zP9Mk0CgYBSwkjOWY86pMgz2uzgq7mJUifvHZ3DeIN5/ej5W4+FUmGoFHoj4Fk3
25+
zsBcFBbYWiew1rJ5UTNtXn0rEbQMpbqkPYjvyJDKhvk25aS4RhIbb81aPnM0rRtc
26+
kM7bDZPJ4tKOyM23cK3+zBh9Qy0pJYOJZYg2phSmaFSwtSnt386wSQ==
27+
-----END RSA PRIVATE KEY-----

src/commands/server.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
let connect = require('connect'),
44
fs = require('fs'),
55
http = require('http'),
6+
https = require('https'),
67
serveStatic = require('serve-static'),
78
serveIndex = require('serve-index'),
89
moment = require('moment'),
@@ -25,8 +26,8 @@ exports.setOptions = (optimist) => {
2526
optimist.describe('m', '加载项目中间件');
2627
optimist.alias('l', 'livereload');
2728
optimist.describe('l', '自动刷新');
28-
// optimist.alias('s', 'https');
29-
// optimist.describe('s', '使用https协议');
29+
optimist.alias('s', 'https');
30+
optimist.describe('s', '使用https协议');
3031
};
3132

3233
exports.run = (options) => {
@@ -35,7 +36,7 @@ exports.run = (options) => {
3536
hot = options.h || options.hot,
3637
proxy = options.x || options.proxy,
3738
middlewares = options.m || options.middlewares,
38-
https = options.s || options.https,
39+
isHttps = options.s || options.https,
3940
enableLivereload = options.l || options.livereload,
4041
port = options.p || options.port || 80;
4142

@@ -242,16 +243,27 @@ exports.run = (options) => {
242243

243244
app.use(serveIndex(cwd));
244245

245-
const httpServer = http.createServer(app)
246-
httpServer.on('error', (e) => {
246+
let server
247+
248+
if(!isHttps) {
249+
server = http.createServer(app)
250+
} else {
251+
const httpsOpts = {
252+
key : fs.readFileSync(sysPath.join(__dirname, '../config/https/server.key')),
253+
cert : fs.readFileSync(sysPath.join(__dirname, '../config/https/server.crt'))
254+
}
255+
server = https.createServer(httpsOpts, app)
256+
}
257+
258+
server.on('error', (e) => {
247259
if(e.code === 'EACCES'){
248260
warn('权限不足, 请使用sudo执行')
249261
} else if(e.code === 'EADDRINUSE'){
250262
warn('端口 ' + port + ' 已经被占用, 请关闭占用该端口的程序或者使用其它端口.')
251263
}
252264
process.exit(1)
253265
})
254-
httpServer.listen(port, () => {
266+
server.listen(port, () => {
255267
warn('Listening on port ' + port);
256268
})
257269

src/config/https/server.crt

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
Certificate:
2+
Data:
3+
Version: 3 (0x2)
4+
Serial Number: 4097 (0x1001)
5+
Signature Algorithm: sha256WithRSAEncryption
6+
Issuer: C=CN, ST=Beijing, L=Beijing, O=Qunar, CN=JerryProxyCA/emailAddress=jiao.shen@qunar.com
7+
Validity
8+
Not Before: Jul 31 18:56:37 2016 GMT
9+
Not After : Jul 26 18:56:37 2036 GMT
10+
Subject: C=CN, ST=Beijing, O=Qunar, CN=www.qunar.com/emailAddress=jiao.shen@qunar.com
11+
Subject Public Key Info:
12+
Public Key Algorithm: rsaEncryption
13+
RSA Public Key: (2048 bit)
14+
Modulus (2048 bit):
15+
00:ad:e3:7d:de:c0:70:60:7d:4d:cc:38:72:e1:26:
16+
c7:a2:aa:d1:fb:4f:b5:fb:18:e9:d3:66:f7:2d:56:
17+
e7:10:cb:6f:6b:c7:80:59:4b:18:23:20:20:f0:ea:
18+
41:4a:36:c5:e1:65:57:60:0a:b2:c3:90:47:61:e1:
19+
53:67:e9:88:7a:7a:cd:ae:20:99:03:62:db:da:df:
20+
29:c9:8e:58:97:eb:72:f4:e8:31:4d:8f:d0:69:e2:
21+
7f:58:f0:a0:93:5e:d5:10:7a:96:91:9f:08:bc:2d:
22+
48:c3:21:64:d1:2c:0b:9b:40:50:86:9c:a7:d6:66:
23+
37:dc:7b:36:62:6d:ec:2a:44:8a:2c:83:6a:c5:42:
24+
d6:9f:4f:96:5a:31:a9:3f:19:42:17:1a:8e:ba:67:
25+
cc:c8:8f:81:10:d7:e8:ec:e5:ac:8e:b6:21:50:fe:
26+
27:19:89:10:4c:e0:00:3f:fd:c9:fe:84:3d:79:6f:
27+
73:a6:1d:7e:66:79:07:84:56:33:84:63:1a:c5:e2:
28+
1e:7a:ad:33:96:aa:fa:9c:f4:f9:25:82:7f:48:97:
29+
09:e5:9e:51:78:34:25:48:81:1b:a5:7c:f5:75:90:
30+
7b:05:16:bd:40:71:04:9b:7e:7e:85:1d:3a:04:04:
31+
be:fc:92:3e:3f:a3:48:92:92:7e:0e:80:32:77:a6:
32+
5d:2f
33+
Exponent: 65537 (0x10001)
34+
X509v3 extensions:
35+
X509v3 Basic Constraints:
36+
CA:FALSE
37+
X509v3 Key Usage:
38+
Digital Signature, Non Repudiation, Key Encipherment
39+
X509v3 Subject Alternative Name:
40+
DNS:*.qunar.com, DNS:*.qunarzz.com, DNS:qunarzz.com
41+
Signature Algorithm: sha256WithRSAEncryption
42+
9c:e5:6a:8d:5e:4d:ab:ef:29:25:ad:ff:42:a5:56:fe:dc:9a:
43+
26:7a:a4:49:f2:e1:32:d5:2e:d7:97:a0:2a:7e:93:ae:67:9d:
44+
29:75:ac:4b:e0:57:e4:51:00:bb:c9:b3:73:16:a9:ce:08:2a:
45+
3e:4a:ef:a0:5b:b6:37:37:63:ee:bd:c9:72:83:e0:7a:7e:cd:
46+
da:e6:80:bb:5b:76:6b:e5:c9:99:18:ad:86:5d:0b:80:73:b3:
47+
e5:b0:25:4e:f0:0a:18:a9:9b:4c:6f:65:f5:40:3b:bd:8c:bf:
48+
fe:9d:27:6b:53:b2:60:72:75:f0:d8:c2:e8:6f:15:d6:4d:61:
49+
5d:ed:ee:b5:a0:b0:a5:5d:77:de:0f:1d:32:63:cd:6a:38:8d:
50+
6f:e6:e9:95:c8:91:a0:ed:93:a9:e2:97:34:bd:3c:cb:d8:49:
51+
8d:1a:ff:0a:ed:c6:84:65:b9:7e:70:5b:9c:58:8b:04:db:dc:
52+
9f:cd:83:36:f1:bd:c8:b9:c3:81:f3:d3:ae:17:d3:35:ba:f9:
53+
20:87:80:37:a8:96:7a:ee:f3:71:7f:63:24:07:cd:c4:18:33:
54+
f6:d0:47:61:fb:63:de:b2:f5:8c:6e:30:e7:37:13:89:59:87:
55+
45:cc:53:72:23:e0:55:4f:d5:6d:0d:fe:7d:11:03:d8:2f:9c:
56+
9b:b4:df:dd:1e:6c:38:91:6e:6e:f3:3f:74:d3:cb:97:1e:9f:
57+
28:b6:f4:12:1e:64:45:41:04:1c:03:1e:c1:d4:99:e0:00:41:
58+
0f:95:bf:fc:2c:75:fa:b8:33:17:fd:c0:ef:80:10:48:ea:ad:
59+
e9:2e:87:d4:96:2a:f8:72:32:e5:60:00:2c:7c:1e:28:f4:25:
60+
4a:ea:ca:af:bf:1e:a3:b8:29:e4:cc:21:4d:b7:2b:fe:9c:e5:
61+
33:fe:4f:5f:9a:8e:11:aa:d8:b9:df:4d:5d:e3:8b:40:a4:3f:
62+
10:bf:a4:03:ca:64:63:b5:5d:8c:aa:01:b0:1d:57:be:82:cd:
63+
9d:8e:9b:de:4e:3a:16:2b:5f:50:92:20:47:91:56:eb:41:29:
64+
16:82:45:ac:7e:03:d1:1e:b4:be:97:f7:0f:d3:99:07:d0:54:
65+
53:d9:61:4e:ea:cb:88:89:37:c9:3f:db:d5:3e:11:7e:f3:a8:
66+
a4:17:0c:fc:31:b2:dc:e6:15:6a:1f:b6:b0:5a:ce:83:2e:6e:
67+
6a:b7:59:23:07:8a:9a:b5:c9:d0:3d:fb:11:6e:cd:40:78:e5:
68+
7e:0d:e6:f8:f8:e5:66:b5:e0:76:d7:3a:1a:f8:69:78:ce:5f:
69+
75:87:a0:42:6f:8d:d0:fa:72:ec:40:fe:b6:a8:6f:b7:59:3c:
70+
c0:20:78:d5:b5:dd:fc:01
71+
-----BEGIN CERTIFICATE-----
72+
MIIEsTCCApmgAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCQ04x
73+
EDAOBgNVBAgTB0JlaWppbmcxEDAOBgNVBAcTB0JlaWppbmcxDjAMBgNVBAoTBVF1
74+
bmFyMRUwEwYDVQQDEwxKZXJyeVByb3h5Q0ExIjAgBgkqhkiG9w0BCQEWE2ppYW8u
75+
c2hlbkBxdW5hci5jb20wHhcNMTYwNzMxMTg1NjM3WhcNMzYwNzI2MTg1NjM3WjBr
76+
MQswCQYDVQQGEwJDTjEQMA4GA1UECBMHQmVpamluZzEOMAwGA1UEChMFUXVuYXIx
77+
FjAUBgNVBAMTDXd3dy5xdW5hci5jb20xIjAgBgkqhkiG9w0BCQEWE2ppYW8uc2hl
78+
bkBxdW5hci5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt433e
79+
wHBgfU3MOHLhJseiqtH7T7X7GOnTZvctVucQy29rx4BZSxgjICDw6kFKNsXhZVdg
80+
CrLDkEdh4VNn6Yh6es2uIJkDYtva3ynJjliX63L06DFNj9Bp4n9Y8KCTXtUQepaR
81+
nwi8LUjDIWTRLAubQFCGnKfWZjfcezZibewqRIosg2rFQtafT5ZaMak/GUIXGo66
82+
Z8zIj4EQ1+js5ayOtiFQ/icZiRBM4AA//cn+hD15b3OmHX5meQeEVjOEYxrF4h56
83+
rTOWqvqc9Pklgn9IlwnlnlF4NCVIgRulfPV1kHsFFr1AcQSbfn6FHToEBL78kj4/
84+
o0iSkn4OgDJ3pl0vAgMBAAGjTjBMMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMDIG
85+
A1UdEQQrMCmCCyoucXVuYXIuY29tgg0qLnF1bmFyenouY29tggtxdW5hcnp6LmNv
86+
bTANBgkqhkiG9w0BAQsFAAOCAgEAnOVqjV5Nq+8pJa3/QqVW/tyaJnqkSfLhMtUu
87+
15egKn6TrmedKXWsS+BX5FEAu8mzcxapzggqPkrvoFu2Nzdj7r3JcoPgen7N2uaA
88+
u1t2a+XJmRithl0LgHOz5bAlTvAKGKmbTG9l9UA7vYy//p0na1OyYHJ18NjC6G8V
89+
1k1hXe3utaCwpV133g8dMmPNajiNb+bplciRoO2TqeKXNL08y9hJjRr/Cu3GhGW5
90+
fnBbnFiLBNvcn82DNvG9yLnDgfPTrhfTNbr5IIeAN6iWeu7zcX9jJAfNxBgz9tBH
91+
Yftj3rL1jG4w5zcTiVmHRcxTciPgVU/VbQ3+fRED2C+cm7Tf3R5sOJFubvM/dNPL
92+
lx6fKLb0Eh5kRUEEHAMewdSZ4ABBD5W//Cx1+rgzF/3A74AQSOqt6S6H1JYq+HIy
93+
5WAALHweKPQlSurKr78eo7gp5MwhTbcr/pzlM/5PX5qOEarYud9NXeOLQKQ/EL+k
94+
A8pkY7VdjKoBsB1XvoLNnY6b3k46FitfUJIgR5FW60EpFoJFrH4D0R60vpf3D9OZ
95+
B9BUU9lhTurLiIk3yT/b1T4RfvOopBcM/DGy3OYVah+2sFrOgy5uardZIweKmrXJ
96+
0D37EW7NQHjlfg3m+PjlZrXgdtc6GvhpeM5fdYegQm+N0Ppy7ED+tqhvt1k8wCB4
97+
1bXd/AE=
98+
-----END CERTIFICATE-----

src/config/https/server.key

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEpAIBAAKCAQEAreN93sBwYH1NzDhy4SbHoqrR+0+1+xjp02b3LVbnEMtva8eA
3+
WUsYIyAg8OpBSjbF4WVXYAqyw5BHYeFTZ+mIenrNriCZA2Lb2t8pyY5Yl+ty9Ogx
4+
TY/QaeJ/WPCgk17VEHqWkZ8IvC1IwyFk0SwLm0BQhpyn1mY33Hs2Ym3sKkSKLINq
5+
xULWn0+WWjGpPxlCFxqOumfMyI+BENfo7OWsjrYhUP4nGYkQTOAAP/3J/oQ9eW9z
6+
ph1+ZnkHhFYzhGMaxeIeeq0zlqr6nPT5JYJ/SJcJ5Z5ReDQlSIEbpXz1dZB7BRa9
7+
QHEEm35+hR06BAS+/JI+P6NIkpJ+DoAyd6ZdLwIDAQABAoIBAQCJdCOCWkI6s7I0
8+
tYZx3fK+7iLQcmEa3MWw+1p2N5StnPI1k10suISa94GyjqoPnR5snmwkGjDXEAyt
9+
Ha2NnXfpwXsmotPxbkr2R6PDlMcJR+/2Ejku43jOymD6EDQOak8oGI8/CySfg3hZ
10+
7uK/yf5eucctsVWmz+RmX+tMgTHG8lsdLSzEUJMncd0vxz5zHSXPZJkb5jnwJkg4
11+
mv7t0dau6PbNXllctYLxTFcfEuHTNzdL5u6HCIPn7smcG/RsWXKjhWd3kwGvNJdJ
12+
PiPiFdlpmb1qOWFkbEVYsAOvY5K4744VoW8ShFHrAh7NRUnpzKzcvtIXW67qNmPC
13+
bs/Clw15AoGBANwvgV8+Um00sHaBBWam684XnnzcIFFIQIrUtXeSTHRLrpOJK4ms
14+
WTXo4HOSMdzHcfcz83Zu48sgTs4DKXgsA2Sis/UzaAVPUgIN9TWdUvvtsNOWp2zJ
15+
x/hEAh3mQ31SYe7zW1PHPx2cTMqM6W+JjO3u9y1OFGyUjkv1P+n0nbH7AoGBAMos
16+
MGSEoncp+G5T6RFmIsjZAJinMsrvibsGbZZRaww/iFfrmqmWZ88C0zder7Xl9ao9
17+
VF19AXC88WS5cmz1vXGm3nfOO6v9/jI0CWtIm7KAMBlXRvgQNC2+gt+bKg+Qx8bD
18+
x9Tsij3GWcP7vXQN3kwfL0GEyhfSIOMGHovCnQ9dAoGBAKOYNEJEts9m53mU0SN9
19+
ABTHHb1dfDGIQlQkSJQHwgBiPtplf1CyGjJgzWtxAtUr5rQqCElFiMBiR8rvNH+S
20+
DA9Yh+a2BCJ11dOq9TaZpo+CAfCjrc+5eHcwaHY4oIpbjGIStBdiIbXpbHDOE58I
21+
jwo1k7c4nRozoiozlQJJ+mTDAoGAUEVtTWvQKeozJnMQlgTsiLyIXRP9uc+T6vsp
22+
Zcab7zgGhYoZVX5PZ0Ui4dgpgdp1SQuixJ/Og5mxaqGrChIkDs0HhaAP10E4vWwl
23+
1T/1+dClyFn75qBgZ00+H1Q3RgjhGU1AuYzVcqOfno4EceDTw3uaQrRbnUukHR+f
24+
3zP9Mk0CgYBSwkjOWY86pMgz2uzgq7mJUifvHZ3DeIN5/ej5W4+FUmGoFHoj4Fk3
25+
zsBcFBbYWiew1rJ5UTNtXn0rEbQMpbqkPYjvyJDKhvk25aS4RhIbb81aPnM0rRtc
26+
kM7bDZPJ4tKOyM23cK3+zBh9Qy0pJYOJZYg2phSmaFSwtSnt386wSQ==
27+
-----END RSA PRIVATE KEY-----

0 commit comments

Comments
 (0)