Скажем, например, CertBot сгенерировал сертификат SSL и ключ сертификата SSL в следующих местах:
/etc/letsencrypt/live/example.org/fullchain.pem
/etc/letsencrypt/live/example.org/privkey.pem
После того, как вы сгенерировали свой сертификат и ключ, вам нужно будет напрямую использовать модуль https
.
Сначала вам нужно будет экспортировать приложение Express:
const express = require('express')
const path = require('path')
const port = process.env.PORT || 80
const app = express()
app.use(express.static(__dirname + '/build'))
app.get('*', function (request, response){
response.sendFile(path.resolve(__dirname, 'build', 'index.html'))
})
module.export = app
Затем просто импортируйте ваше приложение Express и подключите его с помощью модуля https
:
const https = require('https');
const fs = require('fs');
const app = require('./app.js');
const server = https.createServer({
key: fs.readFileSync('/etc/letsencrypt/live/example.org/fullchain.pem', 'utf8'),
cert: fs.readFileSync('/etc/letsencrypt/live/example.org/privkey.pem', 'utf8')
}, app);
server.listen(3000);
Обратите внимание, это, по сути, то, что ./bin/www
делает для вас, за исключением того, что я адаптировал его для использованияhttps
вместо http
module.
См. Что делает "./bin/www" в Express 4.x?