Я использую Apache в качестве прокси-сервера для моего веб-приложения, которое выполняется в контейнере Glassfish. Я настроил прокси-сервер, а также SSL в Apache. Доступ к сайту извне возможен по URL-адресу https://www.my-domain.com без каких-либо проблем. Но я хочу называть сайт без префикса «https: //» (www.mydomain.com.) в браузере.
Если я использую URL без https: //, он выдает ошибку «не удается подключиться к серверу» в браузерах (Safari, firefox) и при использовании curl в командной строке он говорит:
Rebuilt URL to: www.my-domain.com/
Trying 2xx.xxx.xxx.xxx...
connect to 2xx.xxx.xxx.xxx port 80 failed: Connection refused
Я настроил виртуальный хост в соответствии с документацией по apache для перенаправления любого запроса без https на https. Вот моя конфигурация:
<VirtualHost 2xx.xxx.xxx.xxx:80>
ServerName my-domain.com
ServerAlias www.my-domain.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://my-domain.com [R,L]
</VirtualHost>
Есть ли что-нибудь, чего мне не хватает в конфигурации? Почему сервер Apache не перенаправляет запрос? любая помощь будет принята с благодарностью.
ps. как только я вызываю страницу с https: // извне, ее можно вызвать даже с удаленными деньгами, без префикса https: //. В VPN или в той же сети он работает без префикса.
Вам необходимо убедиться, что у вас есть действующий оператор Listen для порта 80 в вашей конфигурации apache. Просто добавить виртуальный хост с портом 80 недостаточно.