0
내 서버에서 SSL/https를 처리 중입니다.iptables 및 구문 분석 서버 (구문 분석 서버)를 사용하여 HTTP를 HTTP로 리디렉션하는 방법
$ sudo iptables -t natL -n --line-number
1 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 redir ports 9080
2 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 4000
이 어떻게 구문 분석 서버가 HTTPS를 사용하도록 HTTP 오는 모든 트래픽을 리디렉션을 알 수 있습니다 :
나는 두 개의 포트 (4000) HTTP에 대한 다른 하나 HTTPS (9080)를 사용하여 iptables에 대한 구성?내가 이전에 expressJS를 사용하여 유사한 구성을했지만 그것을 구문 분석 서버와 함께 작동하지 않습니다, 이것은 내가 이전에 사용 된 코드입니다 : 여기
app.use(function (req, res, next) {
return res.redirect(['https://domainName.tv', req.url].join(''));
});
내 응용하는 index.js입니다
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var path = require('path');
var bodyParser = require('body-parser');
var SimpleSendGridAdapter = require('parse-server-sendgrid-adapter');
var stripe = require("stripe");
var https = require('https');
var http = require('http');
var fs = require('fs');
var databaseUri = 'mongodb://localhost:27017/dev';
if (!databaseUri) {
console.log('DATABASE_URI not specified, falling back to localhost.');
}
var options = {
key: fs.readFileSync(__dirname + '/ssl/domainName.key'),
cert: fs.readFileSync(__dirname + '/ssl/domainName.crt')
};
var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
cloud: __dirname + '/cloud/main.js',
appId: 'xN6xxxxxxxxxxxxxxxxmx',
masterKey: 'egxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdn',
javascriptKey: 'O2xxxxxxxxxxxxxxxxxxxxxxxxxYy', //Add your master key here. Keep it secret!
serverURL: 'https://localhost:9080/parse',
restAPIKey: 'lxxxxxxxxxxxxxxxN',
appName: 'domainName.TV',
publicServerURL: 'https://domainName.tv/parse',
emailAdapter: SimpleSendGridAdapter({
apiKey: 'SG.SbxxxxxxxxxxxxxxxxxxxxxxxxxxxxMxc',
fromAddress: '[email protected]',
}),
liveQuery: {
classNames: ["UsPrIn", "Event"] // List of classes to support for query subscriptions
}
});
var app = express();
// redirect all http requests to https
// THIS IS NOT WORKING!!!!
app.use(function (req, res, next) {
return res.redirect(['https://domainName.tv', req.url].join(''));
});
// Serve static assets from the /public folder
app.use('/public', express.static(path.join(__dirname, '/public')));
// Serve the Parse API on the /parse URL prefix
var mountPath = process.env.PARSE_MOUNT || '/parse';
app.use(mountPath, api);
app.get('/*', function(req, res) {
res.sendFile(path.join(__dirname, '/public/index.html'));
});
var port = process.env.PORT || 9080;
var httpsServer = https.createServer(options, app).listen(port, function() {
console.log('parse-server running on SSL port ' + port + '.');
});
var httpServer = http.createServer(app).listen(4000, function() {
console.log('parse-server running on port 4000.');
});
// This will enable the Live Query real-time server
ParseServer.createLiveQueryServer(httpsServer);
내 솔루션은이 중 하나와 비슷하지만 구문 분석 서버를 사용하고 있습니다. Automatic HTTPS connection/redirect with node.js/express