Мне удалось настроить HTTPS с помощью Nginx на сервере Node на localhost:4000
, поместив пути к сертификатам и ключам в файл conf Nginx, однако я также хотел бы понять, как встроить сертификат ssl в индекс узлафайл .js и просто передайте адрес прокси в localhost:4000
с сертификатами внутри приложения, а не в файл nginx.conf
.
Этот файл nginx.conf будет корректно работать с https / ssl после того, как узелне обслуживается как ssl.
server {
listen 4500 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
access_log /var/log/nginx/example.com.access.log;
location / {
proxy_pass http://localhost:4000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Однако, если я закомментирую следующее nginx.conf
# ssl_certificate /etc/letsencrypt/live/api.ballers.ie/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/api.ballers.ie/privkey.pem;
, а затем добавлю сертификаты на мой сервер узлов следующим образом,говорит мне, что сайт не может быть достигнут.
// ...
// dependencies & config
// ...
const privateKey = fs.readFileSync('/etc/letsencrypt/live/example.com.privkey.pem', 'utf8');
const certificate = fs.readFileSync('/etc/letsencrypt/live/example.com.cert.pem', 'utf8');
const ca = fs.readFileSync('/etc/letsencrypt/live/example.com.chain.pem', 'utf8');
const credentials = {
key: privateKey,
cert: certificate,
ca,
};
const httpsServer = https.createServer(credentials, app);
app.get('*', (req, res) => {
res.send('I am a HTTPS endpoint !');
});
httpsServer.listen(4000);
Я также попытался изменить proxy_pass
на proxy_pass https://localhost:4000;
Мне было бы очень интересно понять, как это сделатьработа, спасибо за помощь.