Skip to content

Instantly share code, notes, and snippets.

@sgimeno
Created May 31, 2014 15:56
Show Gist options
  • Save sgimeno/143a07dadbd21ecc6b6d to your computer and use it in GitHub Desktop.
Save sgimeno/143a07dadbd21ecc6b6d to your computer and use it in GitHub Desktop.
Node http static server with SSL
const fs = require("fs"),
url = require("url"),
path = require("path"),
https = require('https');
var server = https.createServer({
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt')
});
var handler = function(request, response) {
var uri = url.parse(request.url).pathname
, filename = path.join(process.cwd(), uri);
fs.exists(filename, function(exists) {
if(!exists) {
response.writeHead(404, {"Content-Type": "text/plain"});
response.write("404 Not Found\n");
response.end();
return;
}
if (fs.statSync(filename).isDirectory()) filename += '/index.html';
fs.readFile(filename, "binary", function(err, file) {
if(err) {
response.writeHead(500, {"Content-Type": "text/plain"});
response.write(err + "\n");
response.end();
return;
}
response.writeHead(200);
response.write(file, "binary");
response.end();
});
});
}
server.addListener("request", handler);
server.listen(5005);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment