Node.js: Proxy & HTTPS - mtjddnr/lab GitHub Wiki
node-http-proxy ์ค์น
certsํ์๋ก ๋๋ฉ์ธ๋ณ ์ธ์ฆ์ ํ์ผ์ ์ค๋น
- ์) domain.com.key, domain.com.crt, domain.com.ca-bundle
var https = require('https'),
fs = require("fs"),
crypto = require("crypto");
var httpProxy = require('http-proxy');
function getCredentialsContext(cer){
return crypto.createCredentials({
key: fs.readFileSync('certs/' + cer + '.key'),
cert: fs.readFileSync('certs/' + cer + '.crt'),
ca: fs.readFileSync('certs/' + cer + '.ca-bundle')
}).context;
}
var certs = {
"domain.com": getCredentialsContext("domain.com"),
"domain2.com": getCredentialsContext("domain2.com"),
"domain3.com": getCredentialsContext("domain3.com")
};
var defaultCer = "domain.com";
var options = {
https: {
SNICallback: function(hostname){
return certs[hostname];
},
cert: fs.readFileSync('certs/' + defaultCer + '.crt'),
key: fs.readFileSync('certs/' + defaultCer + '.key'),
ca: fs.readFileSync('certs/' + defaultCer + '.ca-bundle')
},
hostnameOnly: true,
router: {
'domain.com': '127.0.0.1:8080',
'domain2.com': '127.0.0.1:8081',
'domain3.com': '127.0.0.1:8082'
}
};
httpProxy.createServer(options).listen(443);