У меня есть REST API, построенный с узлом, который обменивается данными через SSL. Сервер построен с использованием express и использует vhosts и cors. Недавно я добавил слушателя на порт 80, чтобы я мог заставить HTTPS. Когда я тестирую, я попытался получить доступ к http://manage.domain.com:443/, но запрос просто зависает. Похоже, ни один из слушателей не согласился с этим. Все, что я хочу сделать, это перенаправить этот запрос на https.Имея express.js или узел принимают http-соединение через порт 443
0
A
ответ
1
Я предполагаю, что вы уже знаете это, но для обслуживания содержимого HTTPS вам понадобится сервер https (duh). Неважно, какой порт вы запускаете; 443 - это только порт по умолчанию для HTTPS. Если вы хотите, чтобы HTTP-запросы перенаправлялись на HTTPS, вам нужен как HTTP, так и https-сервер. Вот пример того, как файл приложение должно выглядеть:
var http = require('http'),
https = require('https'),
express = require('express')
fs = require('fs');
var domain = 'localhost';
var app = express();
app.get('*', function(req, res){
// redirect to HTTPS
res.redirect('https://' + domain + req.path);
});
http.createServer(app).listen(80, function(){
console.log('HTTP listening on port 80');
});
var appSecure = express();
// configure your app here
var options = {
key: fs.readFileSync('ssl_key.pem'),
cert: fs.readFileSync('ssl_cert.crt'),
};
https.createServer(options, appSecure).listen(443, function(){
console.log('HTTPS listening on port 443');
});
Очевидно, что вам нужен ключ SSL и сертификат, чтобы сделать эту работу.
Как вы, наверное, знаете, большинство систем требуют повышенных привилегий, чтобы открыть порт менее 1025; поэтому, если вы используете порт 80 и порт 443, вам придется запустить сервер приложений с повышенными привилегиями (если вы работаете на OSX/Linux/BSD, просто сделайте sudo node app.js
).
Смежные вопросы
- 1. Узел GCM с прокси - порт 443 инвалидов
- 2. push to heroku через порт 443
- 3. Https альтернативный порт для 443
- 4. DocuSignAPI - Порт 443 не доступен
- 5. SSL Apache, Порт 443 используется
- 6. Android почему порт 443 открыт?
- 7. Запуск tomcat на 443 порт
- 8. Орион и Раш - уведомления HTTPS через порт 443
- 9. Проблем с SSL (порт 443) и FB
- 10. создать туннель для доступа по протоколу HTTPS через порт 443
- 11. Ошибка 404 при доступе к ресурсу через порт 443
- 12. Возможно ли использовать HTTP (НЕ HTTPS) через порт 443?
- 13. Nginx прослушивает порт 80 или 443, но не отвечает
- 14. Как получить node.js express.js на порт 80
- 15. сделать wildfly прослушивает порт 443 не 8443
- 16. порт 443 включен и как протестировать сервер?
- 17. порт 443 используется http.exe, Apache, Xampp
- 18. Как прослушивать порт 443 с помощью Express?
- 19. Github SSH через прокси-сервер института, порт 22, а также порт 443 заблокирован
- 20. будет хипчат бот «lita» и/или «hubot» работать через порт 443?
- 21. Настраивание WebRTC через 80/443 tcp
- 22. Nginx, Express.js и узел на порту 80
- 23. res.redirect не перенаправляет узел/Express.js
- 24. Git over port 443
- 25. IIS: порт совместного доступа к Интернету и IIS 443
- 26. Узел Экспресс Применение перенаправления порт 443 запросов к порту 3000 на HostMonster
- 27. Java Remote Logging через HTTPS 443
- 28. Мне нужно открыть порт 443/80 для поиска интернета?
- 29. узел express.js рендеринга перед выполнением функции
- 30. Порт HAproxy 80 и 443 для бэкэнда: 80 и бэкэнд: 443
Это точно настройка у меня есть. В моем случае, если я попробую http: // localhost: 443 /, то запрос просто продолжит загрузку. Обратите внимание, что моими серверами являются http на 80 и https на 443, но я пытаюсь сделать клиент доступ к http на 443. Я не хочу отправлять какие-либо данные, просто хочу перенаправить пользователя на https/443 – Xerri
. К сожалению, вы не сможете сделать это из коробки с помощью Node: вам придется по существу написать свой собственный модуль ('httpAndHttps'), и это будет ... существенное усилие. Это обсуждение может вам помочь: http://serverfault.com/questions/359461/apache-answer-both-http-and-https-on-the-same-port –
Вы можете просто установить балансировщик нагрузки для выгрузки ssl перед узлом, а затем со стороны узла все его http: –