Как настроить HTTPS с помощью Lets Encrypt, Node и Express 4

Что я сделал

Я использовал certbot , чтобы подтвердить, что я владею своим доменом, в котором было создано несколько файлов .pem . Сертификаты перечислены здесь: https://certbot.eff.org/docs/using. html # where-are-my-Certific

Я нашел этот пост , который имеет смысл и соответствует всей другой информации, которую я получаю из Google, но когда я сделаю это и запустил узел, я могу не подключаюсь к моему сайту по https. Http работает нормально, как и всегда.

Мой сервер - express.js + node.js, и я не использую обратный прокси, такой как nginx. Он работает в Ubuntu на платформе Google Cloud Platform.

Соответствующий код:

var http = require('http');
var https = require('https');
var privateKey  = fs.readFileSync('/etc/letsencrypt/live/troywolters.com/privkey.pem', 'utf8');
var certificate = fs.readFileSync('/etc/letsencrypt/live/troywolters.com/fullchain.pem', 'utf8');
var credentials = {key: privateKey, cert: certificate};
var app = express();

// Lots of other express stuff (app.use()'s)

var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);
httpServer.listen(80);
httpsServer.listen(443);

Что не работает

Когда я пытаюсь подключиться к своему сайту с помощью https://troywolters.com время ожидания соединения истекает, и ничего не происходит. Что я делаю не так?

2
задан 23 May 2017 в 15:41
1 ответ

Ответом на проблему было то, что моя хостинговая платформа (Google Cloud Platform) не пропускала порт 443 через брандмауэр по умолчанию конфигурация. Запуск

gcloud compute firewall-rules create allow-https --description "Incoming https allowed." --allow tcp:443

разрешил входящий трафик через порт 443 и устранил проблему.

Спасибо Майклу Хэмптону за совет.

1
ответ дан 3 December 2019 в 12:36

Теги

Похожие вопросы