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

Почему это перенаправление HTTP на HTTPS не работает?

Я прочитал все обсуждения на эту тему и решил безуспешно использовать метод Redirect в файле httpd.conf ... Итак, я вернулся сюда, к этой толпе знающих людей.

У нас есть служба, назовем ее "host1" (на основе https), которая работает на Centos 6.x. Мы решили добавить туда наш веб-сайт, чтобы использовать приобретенные SSL-сертификаты с подстановочными знаками, которые хорошо работают для двух доступов SSL при подключении https.

К сожалению, наш веб-сайт недоступен и время ожидания истекает, когда пользователь набирает ourdomain.com, www.ourdomain.com или использует http для ourdomain.com или www.ourdomain.com. Все отлично работает с https для ourdomain.com, www.ourdomain.com и host1.ourdomain.com.

Ниже вы найдете httpd.conf и ssl.conf, усеченные до областей виртуальных хостов в обоих и скрывающих наши конкретные детали.

Я получаю следующую ошибку от httpd с этой конфигурацией:

Этого больше не происходит, спасибо за подсказки Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80

------------ Start httpd.conf ------------------
# >>httpd configuration truncated down to Virtual Hosts

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

 <VirtualHost *:80>
   ServerName www.ourdomain.com
   Redirect permanent / https://www.ourdomain.com/
 </VirtualHost>

------------ End httpd.conf ------------------

------------ Start ssl.conf to manage 443 and ssl certificates------------------

# >>SSL Configuration Truncated up to Listen 443 and Virtual Hosts

Listen 443

    #Listen for virtual host requests on all IP addresses
NameVirtualHost *:443

# >>SSL Config ...

##
## SSL Virtual Host Context
##

<VirtualHost *:443>

DocumentRoot /var/www/html/dir1
ServerName host1.ourdomain.com
ServerAlias host1.ourdomain.com

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

# >>SSL Certificates Config ... Truncated
</VirtualHost>


<VirtualHost *:443>

DocumentRoot /var/www/html/dir2
ServerName ourdomain.com
ServerAlias ourdomain.com www.ourdomain.com

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

# >>SSL Certificates Config ... Truncated

</VirtualHost>

------------ End ssl.conf ------------------

В чем проблема ?? Я бы не хотел соглашаться с .htaccess, поскольку я хочу, чтобы AllowOverride All не влиял на нашу службу host1.

Спасибо.

Оли

----- Добавлен раздел для второго запроса netstat от ngn

# netstat -ant | grep 80
tcp        0      0 :::80                       :::*                        LISTEN

----- Добавлен раздел для запроса lsof от Hbruijn - есть идеи?

# lsof -iTCP:80
COMMAND   PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
httpd   24331   root    5u  IPv6 5381394      0t0  TCP *:http (LISTEN)
httpd   24334 apache    5u  IPv6 5381394      0t0  TCP *:http (LISTEN)
httpd   24335 apache    5u  IPv6 5381394      0t0  TCP *:http (LISTEN)
httpd   24336 apache    5u  IPv6 5381394      0t0  TCP *:http (LISTEN)
httpd   24337 apache    5u  IPv6 5381394      0t0  TCP *:http (LISTEN)
httpd   24338 apache    5u  IPv6 5381394      0t0  TCP *:http (LISTEN)
httpd   24339 apache    5u  IPv6 5381394      0t0  TCP *:http (LISTEN)
httpd   24340 apache    5u  IPv6 5381394      0t0  TCP *:http (LISTEN)
httpd   24341 apache    5u  IPv6 5381394      0t0  TCP *:http (LISTEN)
httpd   25323 apache    5u  IPv6 5381394      0t0  TCP *:http (LISTEN)
httpd   25325 apache    5u  IPv6 5381394      0t0  TCP *:http (LISTEN)
httpd   25326 apache    5u  IPv6 5381394      0t0  TCP *:http (LISTEN)

Новое дополнение к этому выпуску

Вот результаты httpd -S, все в порядке с точки зрения httpd. Но подключение к http: //ourdomain.com или http: //www.ourdomain.com останавливается во всех браузерах ... Перезапись с https вообще не работает.

wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
     default server ourdomain.com (/etc/httpd/conf/httpd.conf:1032)
     port 80 namevhost ourdomain.com (/etc/httpd/conf/httpd.conf:1032)
             alias ourdomain.com
             wild alias *.ourdomain.com
*:443                  is a NameVirtualHost
     default server host1.ourdomain.com (/etc/httpd/conf.d/ssl.conf:40)
     port 443 namevhost host1.ourdomain.com (/etc/httpd/conf.d/ssl.conf:40)
             alias host1.ourdomain.com
     port 443 namevhost ourdomain.com (/etc/httpd/conf.d/ssl.conf:95)
             alias ourdomain.com
             alias www.ourdomain.com
Syntax OK

httpd.conf для порта 80

<VirtualHost *:80>
    ServerName ourdomain.com
    ServerAlias ourdomain.com *.ourdomain.com
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 
</VirtualHost>

Для первой проблемы попробуйте настроить свой ServerAlias переменная, чтобы включить следующее во все разделы виртуального хоста.

ServerAlias ourdomain.com *.ourdomain.com

Ссылка: http://httpd.apache.org/docs/2.4/mod/core.html#serveralias

В соответствии с ошибкой запуска, похоже, что предыдущий запуск не завершился должным образом, т.е. ваш вывод netstat & lsof показывает, что он все еще работает и прослушивает порт 80. Прежде чем вы попытаетесь запустить снова, убедитесь, что httpd еще не запущен, т.е. вам следует не вижу вывода для httpd при запуске lsof -iTCP:80