Назад | Перейти на главную страницу

Apache отвечает на HTTP и HTTPS на одном и том же порте

Я пытаюсь заставить apache перенаправить с http на https, однако я хочу, чтобы они оба были на одном порте (20100, но я сомневаюсь, что это будет иметь значение). В основном что происходит Вот за исключением того, что я не делаю этого для webmin. В настоящее время он настроен для обслуживания HTTPS, и когда я получаю доступ по HTTP, я получаю:

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.

Кажется, есть много похожих вопросов, однако я не могу найти тот, который действительно отвечает на мой вопрос.

Это невозможно с Apache. С Apache у вас не может быть HTTPS и HTTP, работающих на одном порту.

Я знаю несколько мультиплексоров портов, предназначенных для HTTPS/ OpenVPN и SSH работают на том же порту, но для этого требуется дополнительное программное обеспечение.

Это можно заархивировать, перенаправив на пользовательскую страницу «400 - неверный запрос» и изменив перенаправление с помощью правила перезаписи. В следующем примере я запрашиваю

http: //test.mydomain.com:27000

и вас перенаправят на

https: //test.mydomain.com:27000

с одним виртуальным хостом.

Код:

ErrorDocument 400 /

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^/?(.*) https://%{SERVER_NAME}:27000/$1 [R,L]

Или вы просто перенаправляете напрямую на HTTPS-версию страницы.

Код:

 ErrorDocument 400 https://test.mydomain.com:27000

Но вы потеряете возможность перенаправления на настоящую страницу с ошибочным запросом.