HTTP -> Перенаправление HTTPS с помощью OpenBSD httpd [closed]

Запуск OpenBSD 4.4-stable со встроенным демоном httpd и PHP5, который был перемещен из сервера Ubuntu 8.04.Поскольку перемещение phpMyAdmin, кажется, время от времени генерирует следующую ошибку (а иногда и все время, например, при входе в систему):

Bad Request
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.

Адрес для phpMyAdmin находится под URL-адресом https: //, и когда возникает эта ошибка, phpMyAdmin пытается используйте http://domain.com:443/ , что явно не сработает.

У меня также есть правило mod_rewrite, чтобы всегда принудительно использовать HTTPS, но поскольку браузер форсирует порт 443, он никогда не запускается.

Есть идеи, как это исправить?

[EDIT]

Вот мои директивы vhost, так как они были запрошены:

<VirtualHost *:80>
    DocumentRoot    /var/www/htdocs
    RewriteEngine   On
    RewriteCond     %{HTTPS} off
    RewriteRule     (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost *:443>
    DocumentRoot    /var/www/htdocs
    ErrorLog        logs/error_log
    TransferLog     logs/access_log
    RewriteCond     %{REQUEST_METHOD} ^(TRACE|TRACK)
    RewriteRule     .* - [F]
</VirtualHost>

[РЕДАКТИРОВАТЬ 2]

Я отключил правило перезаписи, и все работает как шарм: / Не уверен, что с этим делать, так как то же правило перезаписи работает и в другом месте.

0
задан 3 April 2015 в 16:22
2 ответа

В моей установке PHPMyAdmin у меня есть апачская конфигурация, которая похожа на это:

<VirtualHost 72.233.89.20:80>
    ServerName mysql
    ServerAlias mysql.*
    UseCanonicalName Off
    DocumentRoot /var/www/phpmyadmin/html/
    DirectoryIndex index.html index.htm index.php
    AddType application/x-httpd-php .php

    php_admin_value open_basedir /var/www/phpmyadmin/
    php_admin_value file_uploads 1
    php_admin_value upload_tmp_dir /var/www/phpmyadmin/phptmp/
    php_admin_value session.save_path /var/www/phpmyadmin/phptmp/
</VirtualHost>
#
######
# Interface for https (openssl)
######
#
<IfModule mod_ssl.c>
<VirtualHost 72.233.89.20:443>
        ServerName mysql
        ServerAlias mysql.*
        UseCanonicalName Off
        DocumentRoot /var/www/phpmyadmin/ssl
        SSLEngine on
        SSLCertificateFile    /etc/httpd/conf/ssl/server.crt
        SSLCertificateKeyFile /etc/httpd/conf/ssl/server.key
        DirectoryIndex index.html index.htm index.php
        AddType application/x-httpd-php .php

        php_admin_value open_basedir /var/www/phpmyadmin/
        php_admin_value file_uploads 1
        php_admin_value upload_tmp_dir /var/www/phpmyadmin/phptmp/
        php_admin_value session.save_path /var/www/phpmyadmin/phptmp/
</VirtualHost>
</IfModule>

Отметьте, как это настраивается на порте 80 и порте 443.

В webroot http (порт 80) у меня просто есть .htaccess файл, который похож на это:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Перенаправить все это к SSL.

Все файлы PHPMyAdmin живут в каталоге SSL.

Я предлагаю настроить Ваш vhost для обслуживания и на порте 80 и на порте 443. Сам PHPMyAdmin является просто сценарием PHP, он не вызывает порта. Это - все о том, как настроены Ваши webserver/vhosts.

2
ответ дан 4 December 2019 в 15:33
  • 1
    Вы don' t нужны Переписать директивы в .htaccess файле - можно просто бросить их в < VirtualHost ip:80> раздел. –  sh-beta 18 May 2009 в 20:14

Так как браузеры обычно не перенаправляют от порта 80 для портирования 443, это может быть первая страница, возвращенная из phpmyadmin, это вызывает изменение. Смотрите на свою phpmyadmin конфигурацию для наблюдения то, с чем происходят различия:

  • config.inc.php

    $cfg ['ForceSSL'] булевская переменная

Вызвать ли использование https при доступе phpMyAdmin.

Согласно документации, это идет по умолчанию, но так как у Вас есть работа mod_rewrite, могло бы быть 'разъединение?'

И кажется что в эти дни общее указание на включение условия для Microsoft IE, такой как:

Агент пользователя SetEnvIf ".MSIE". ssl-небезопасное-завершение-работы nokeepalive

Иначе...

Случайно был бы с помощью пакетов OpenBSD Apache 2.0.x иметь значение для Вас?

Кажется, что Ваша конфигурация Ubuntu будет использовать Apache 2.0, и Вы переместили свою систему (и конфигурации) на конфигурацию OpenBSD по умолчанию с помощью Apache 1.3.x

Я думаю, что необходимо будет, по крайней мере, посмотреть на php_admin_value, показал WerkkreW.

КОГДА простые вещи не работают, мы можем всегда увеличивать данные LogLevel и смотреть на результаты оттуда. Это является шумным, но всегда опция.

Включите SSLOptions StdEnvVars в конфигурации Apache

Создаются StdEnvVars, Когда эта опция включена, стандартный набор связанных с SSL переменных среды CGI/SSI. Это на значение по умолчанию отключено по причинам производительности, потому что шаг извлечения информации является довольно дорогой операцией. Таким образом, каждый обычно включает эту опцию для CGI, и SSI запрашивает только.

0
ответ дан 4 December 2019 в 15:33
  • 1
    Эй, спасибо за предложения. I' ve попробовал вышеупомянутые предложения, и тем не менее никакие не идут (за исключением вещи IE, это происходит и в Firefox и в IE). Как часть новой политики компании we' ре, переключающее все на CentOS вместо соединения Ose, мы имеем теперь, таким образом, I' ll видят если его все еще выполнение его после этого.Спасибо! –  dragonmantank 5 August 2009 в 19:40
  • 2
    Никакой probs и удача. –  samt 6 August 2009 в 03:51

Теги

Похожие вопросы