Secure server
This commit is contained in:
parent
bacc913803
commit
b7eacc08e0
29
certificates/modernjsbook.crt
Normal file
29
certificates/modernjsbook.crt
Normal file
@ -0,0 +1,29 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFBjCCAu4CCQCfqa7X5n3VxTANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJB
|
||||
VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
|
||||
cyBQdHkgTHRkMB4XDTE4MDUxNTAyMzIzOVoXDTE5MDUxNjAyMzIzOVowRTELMAkG
|
||||
A1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0
|
||||
IFdpZGdpdHMgUHR5IEx0ZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
|
||||
ANbcHBybfkSZuPYvrLjOrX9W24YpwQvfRWLGYFXUAbyu3kTjZkuYUI4nWgFcZXHo
|
||||
TGoes92SNL5OnOXPh2MQbyBU/5sVsuZnObtSPt8095UeJrQSyAlSV5J5Q1yHs3qI
|
||||
Etq7MHJ02EgaysupNmiSctzdys+hGCavQ0Yl8StOg4HF+0LD2OKfdxDSsYTWaZ10
|
||||
F6/AyPX4d4/tCm9RqZOJx/XRiDJ8uZjShApiJ+HbQkIybqVGx7NQSlA7kCbrS4s/
|
||||
Zl292l2G+O4/Wa0dxQSg9JjKg7/QwLt/m/MhNWEm3fEWxfRYxABG1Y11OZDyXDNj
|
||||
X55gRHRJTZLMEgW+Dex38gHjKk2L6xuG7xrkBmk7fB8UD42dEa/vToJ7L4hlvsaJ
|
||||
ZyhNinwsNf+ap+STfe34skokKawE5ASqwsK8cyBueX5CMjUYHSKdgR/B59v9HXbp
|
||||
vfh+SKN1j+dt4VrIsIMWLs8jzJ63vUdLyl19/29VK/AKVouWvV/egF4IKAmZcRJ0
|
||||
V6kNqPI4PvlDgIiBmqafX7UArh9gNNf77cfOp6Xd6PmEof1OW/WXtoI5QZMTTcJZ
|
||||
JHZYH1S3WPQJYYsk7OKWy9LHKiieBAV7X0y+25yfwZeWl/PJTWJiqkxjwoee3FF5
|
||||
Y0OpGGkZBUK/RTuVryHelMRucuS+oTsqk4HKiWp8Ds8tAgMBAAEwDQYJKoZIhvcN
|
||||
AQELBQADggIBAGwVGW9/j6ImzQSXzPwrKeYDi/dFLEhyU1eSyYobMxqNzrGyBh3a
|
||||
YhQm4/bY+JXdv22neLhFLhkVuq+33e86fawezJzDbyWmHRY2cjZdRehH1nyWEzFJ
|
||||
ffyyJPRsNguCHtYgSC6F1fGVXmvJ/2JRXeMY/EgReZnIaweLpqQdfnpHj0NmzzxX
|
||||
foxKhmXjmFv3yZg/fiZ1eEKMlVMVRyE6IwDzhuUkMNpV+cwepu8FpsUP6ZGRJTVn
|
||||
8PYfhDmvZKGwfWetkdgujRPzl5UBfR7yPHiNNKrkXxuh9jxmxQ6tgofCmgJX8MAj
|
||||
JDAKN3yN7HXpxoiYgdQjBDZ9q7trfvUJNKZFQ/IidJPOKkEJAg6MXn9vLSolfyFV
|
||||
qlo0xa7JgnfgMPdfGncekBpFMdY1U6UHNpUd+EDSNQykjKHDal93BWUVPmG9iiPp
|
||||
3CNTQIbh4gC8PqEcb1vzvfGuUTT8ZbywzOfP3ydhkEQbIGQHP7P9IqwV8uH7pyVp
|
||||
LsqPMey2G6xloigq7uQu0FC59DmYYysvXkROpwDo3rPF63S22k2uCRhKAUbHmUL0
|
||||
zHvnJAwslgloNqdwkVdx3Rxq/xq9QHvWTB+b3n2IdjLoM3jqN8OjZr3NjFy3q6fX
|
||||
L/kJUpi1pzO2/U59kw6+9NCfp7CV0/zWuwlETKq+eKKgGk3lids+Jds9
|
||||
-----END CERTIFICATE-----
|
||||
27
certificates/modernjsbook.csr
Normal file
27
certificates/modernjsbook.csr
Normal file
@ -0,0 +1,27 @@
|
||||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIIEijCCAnICAQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
|
||||
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCAiIwDQYJKoZIhvcN
|
||||
AQEBBQADggIPADCCAgoCggIBANbcHBybfkSZuPYvrLjOrX9W24YpwQvfRWLGYFXU
|
||||
Abyu3kTjZkuYUI4nWgFcZXHoTGoes92SNL5OnOXPh2MQbyBU/5sVsuZnObtSPt80
|
||||
95UeJrQSyAlSV5J5Q1yHs3qIEtq7MHJ02EgaysupNmiSctzdys+hGCavQ0Yl8StO
|
||||
g4HF+0LD2OKfdxDSsYTWaZ10F6/AyPX4d4/tCm9RqZOJx/XRiDJ8uZjShApiJ+Hb
|
||||
QkIybqVGx7NQSlA7kCbrS4s/Zl292l2G+O4/Wa0dxQSg9JjKg7/QwLt/m/MhNWEm
|
||||
3fEWxfRYxABG1Y11OZDyXDNjX55gRHRJTZLMEgW+Dex38gHjKk2L6xuG7xrkBmk7
|
||||
fB8UD42dEa/vToJ7L4hlvsaJZyhNinwsNf+ap+STfe34skokKawE5ASqwsK8cyBu
|
||||
eX5CMjUYHSKdgR/B59v9HXbpvfh+SKN1j+dt4VrIsIMWLs8jzJ63vUdLyl19/29V
|
||||
K/AKVouWvV/egF4IKAmZcRJ0V6kNqPI4PvlDgIiBmqafX7UArh9gNNf77cfOp6Xd
|
||||
6PmEof1OW/WXtoI5QZMTTcJZJHZYH1S3WPQJYYsk7OKWy9LHKiieBAV7X0y+25yf
|
||||
wZeWl/PJTWJiqkxjwoee3FF5Y0OpGGkZBUK/RTuVryHelMRucuS+oTsqk4HKiWp8
|
||||
Ds8tAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEAZb2YXQ6hIBUM43neMJgS5FXU
|
||||
JE6JjoDUSQQJhOLwpr9XMGhIBUZ6KPL7gh23ROk/LGIgZN7AxiLVS0Lx2zo9OpPb
|
||||
lPXVn+NNTz8NU+WhsDP88aF0yfzr2YLs0wAsYE0tcFO4T8F4AzzIv5tEYewXn8rt
|
||||
TKunAzimsgjYG6Sv+cWRfBj6c7SERHejbZ1oXajGovEN0LEOpdfuPnDuxFeicpCY
|
||||
USDVSlsaK+QdB5IWg7Pp1kqC3MtksYTM1F79b/e5duv8xlpEasp5WxEgxPbM2ftK
|
||||
1yvlYnk9Tn5W8lsG3Q2PW0pgEpCe2sb4UPqovyZHxIlY6689c2u/47+hTiwH6TRm
|
||||
IoLDUJGhTHWMWUEFo41G9thjo082W0YtLkCfSHXGuazyhXPmWNYsVOaM4Md+7SeK
|
||||
Pw0Btu1xj5MfHxL8RV8KP16TgCXYUjwIJ0oNp29i6KxW7HNabTM2npMEmg71m0OL
|
||||
PJsBXXiJltBzHJ/J9oPrtnRrM6POLRm1A+QTeW0WngcOp2ivQqPjjByL7mHi767l
|
||||
BdHYF55qHBzGlvyMFX3GrDZA4tg5dQER8sg3zErTC9amcfcidPq9Exym8GcY0fmg
|
||||
ZK3SYc2M/pwKC8qcEe42I2qpSogUNkNIb1mQXE1hvk/Q6v+T8C5ZsLvrfQUFQPxX
|
||||
OFc3s+ni/Q3lsi68jHc=
|
||||
-----END CERTIFICATE REQUEST-----
|
||||
52
certificates/modernjsbook.key
Normal file
52
certificates/modernjsbook.key
Normal file
@ -0,0 +1,52 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
WW/Y0mIie3sbuxnOlxZ1ASzbJ66GFA==
|
||||
-----END PRIVATE KEY-----
|
||||
@ -6,4 +6,8 @@ const app = express();
|
||||
|
||||
app.get("/", (req, res) => res.send("Server alive, with Express!"));
|
||||
|
||||
app.listen(8080, () => console.log("Mini server (with Express) ready at http://localhost:8080/!"));
|
||||
app.listen(8080, () =>
|
||||
console.log(
|
||||
"Mini server (with Express) ready at http://localhost:8080/!"
|
||||
)
|
||||
);
|
||||
|
||||
18
chapter04/src/http_server.js
Normal file
18
chapter04/src/http_server.js
Normal file
@ -0,0 +1,18 @@
|
||||
/* @flow */
|
||||
"use strict";
|
||||
|
||||
const express = require("express");
|
||||
const app = express();
|
||||
const http = require("http");
|
||||
|
||||
http.createServer(app).listen(8080);
|
||||
|
||||
app.use((req, res, next) => {
|
||||
if (req.secure) {
|
||||
next();
|
||||
} else {
|
||||
res.redirect(
|
||||
`https://${req.headers.host.replace(/8080/, "8443")}${req.url}`
|
||||
);
|
||||
}
|
||||
});
|
||||
17
chapter04/src/https_server.js
Normal file
17
chapter04/src/https_server.js
Normal file
@ -0,0 +1,17 @@
|
||||
/* @flow */
|
||||
"use strict";
|
||||
|
||||
const express = require("express");
|
||||
const app = express();
|
||||
const https = require("https");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const keysPath = path.join(__dirname, "../../certificates");
|
||||
const ca = fs.readFileSync(`${keysPath}/modernjsbook.csr`);
|
||||
const cert = fs.readFileSync(`${keysPath}/modernjsbook.crt`);
|
||||
const key = fs.readFileSync(`${keysPath}/modernjsbook.key`);
|
||||
|
||||
https.createServer({ ca, cert, key }, app).listen(8443);
|
||||
|
||||
app.get("/", (req, res) => res.send("Secure server!"));
|
||||
Loading…
x
Reference in New Issue
Block a user