SNI support

This commit is contained in:
MatthiasSaihttam 2021-08-28 15:01:47 -04:00
parent 24b68ce01f
commit 1314e3c6ff
1 changed files with 21 additions and 6 deletions

27
main.js
View File

@ -2,15 +2,30 @@ const tls = require("tls");
const fs = require("fs");
const options = {
cert: fs.readFileSync("public-cert.pem"),
key: fs.readFileSync("private-key.pem"),
//cert: fs.readFileSync("public-cert.pem"),
//key: fs.readFileSync("private-key.pem"),
SNICallback: function (servername, callback) {
console.log(servername);
if (servername === "localhost") {
callback(null, tls.createSecureContext({
cert: fs.readFileSync("public-cert.pem"),
key: fs.readFileSync("private-key.pem"),
}));
}else {
callback(null, tls.createSecureContext({
cert: fs.readFileSync("mac-gamma-pub-cert.pem"),
key: fs.readFileSync("mac-gamma-key.pem")
}))
}
}
};
const server = tls.createServer(options);
server.on("secureConnection", socket => {
socket.setEncoding("utf8");
socket.write("20 text/gemini\r\n");
socket.write("Hello, world!\r\n");
socket.end();
socket.setEncoding("utf8");
socket.write("20 text/gemini\r\n");
socket.write("Hello, world!\r\n");
socket.write(`You're connecting from ${socket.servername}`)
socket.end();
});
server.listen(1965);