У меня есть nodejs приложение, которое номер порта 3001
и это приложение, работающее с http, но не работой с https. На апачском сервере, набор отворот проксируют для 80
или 443
кому: 5001
и отворот набора проксирует для 3 001 также.
http://<domain>:3001/socket.io/socket.js ---> Work
https://<domain>:3001/socket.io/socket.js ---> Not Work(Secure Connection Failed or This site can’t be reached)
Здесь я должен знать тот же порт (3001
) работа с http
и https
?
Какое-либо решение для этого?
Нет, не возможно выполнить HTTP и HTTPS на том же порте.
При использовании HTTPS соединение использует протокол SSL/TLS от, очень запускаются. Нет никакой возможности для клиента начать передавать использующую плоскость HTTP.
стандарт SSL/TLS не предусматривает способ ронять к HTTP, если коммуникация простого текста обнаруживается на порте.
Я не знаю, как они это сделали, но разработчики в моей компании сделали именно то, что @thomasrutter говорит, что вы не можете сделать: мы используем нестандартный TCP-порт (то есть не 80 и не 443), например. 8080, и на этом порту, если вы отправляете http-запрос, он перенаправляет вас на https на том же порту 8080. Они сделали это с nginx и не добились этого с apache2!
Редактировать: похоже, это происходит в nginx с кодом ошибки 497, а ваш браузер делает все остальное: https://ma.ttias.be/force-redirect-http-https-custom-port-nginx/