Secure server

This commit is contained in:
fkereki 2018-05-14 23:19:12 -04:00
parent bacc913803
commit b7eacc08e0
6 changed files with 148 additions and 1 deletions

View 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-----

View 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-----

View File

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
WW/Y0mIie3sbuxnOlxZ1ASzbJ66GFA==
-----END PRIVATE KEY-----

View File

@ -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/!"
)
);

View 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}`
);
}
});

View 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!"));