я использовал certbot
чтобы подтвердить, что я владею своим доменом, в результате которого было создано несколько .pem
файлы. Сертификаты перечислены здесь: https://certbot.eff.org/docs/using.html#where-are-my-certificates
я нашел эта почта что имеет смысл и соответствует всей другой информации, которую я получаю из Google, но когда я делаю это и запускаю узел, я не могу подключиться к своему сайту с помощью https. Http как всегда работает нормально.
Мой сервер - express.js + node.js, и я не использую обратный прокси, например nginx. Он работает на Ubuntu на облачной платформе Google.
Соответствующий код:
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 время ожидания соединения истекает, и ничего не происходит. Что я делаю не так?
Ответ на проблему заключался в том, что моя хостинговая платформа (Google Cloud Platform) не пропускала порт 443 через брандмауэр в конфигурации по умолчанию. Бег
gcloud compute firewall-rules create allow-https --description "Incoming https allowed." --allow tcp:443
разрешил входящий трафик через порт 443 и устранил проблему.
Спасибо Майклу Хэмптону за подсказку.