Błąd przekierowania logowania phpmyadmin z niestandardowym portem ssl
Na serwerze działa Ubuntu 10.10, Apache 2.2.16, PHP 5.3.3-1ubuntu9.3, phpMyAdmin 3.3.7deb5build0.10.10.1. Ponieważ na tym samym serwerze działa również Zimbra na porcie 443, skonfigurowałem Apache do obsługi SSL na porcie 81. W tej chwili mam jeden skrypt CMS działający pomyślnie na tym wirtualnym hoście.
Jednak kiedy uzyskuję dostęp do/phpmyadmin (skonfigurowany z domyślnym aliasem) na moim niestandardowym porcie ssl i przesyłam formularz logowania, jestem przekierowywany do
http://vhost.domain.com:81/index.php?TOKEN=foo
http://vhost.domain.com:81/index.php?TOKEN=foo
(uwaga http:// zamiast https://, który był używany do logowania). To generuje błąd 400 Bad Request, narzekający na „wysyłanie normalnego HTTP do portu serwera z włączonym SSL”. Następnie mogę ręcznie zmienić http:// na https:// w adresie URL i zgodnie z oczekiwaniami użyć phpmyadmin.
Byłem na tyle zirytowany, że spędziłem godzinę próbując to naprawić, a teraz jestem jeszcze bardziej zirytowany, że nie mogę tego rozgryźć. Próbowałem różnych rzeczy, w tym:
- Dodawanie $ cfg ['PmaAbsoluteUri'] = ' https://vhost.domain.com:81/phpmyadmin/ https://vhost.domain.com:81/phpmyadmin/ '; do/usr/share/phpmyadmin/config.inc.php, ale to nie rozwiązało problemu (chociaż/usr/share/phpmyadmin/libraries/auth/cookie.auth.lib.php wygląda na to, że powinien go szanować i używać jako przekierowanie).
- Dodawanie $ cfg ['ForceSSL'] = 1; oprócz config.inc.php, ale potem Apache zamienia się w nieskończone przekierowanie.
- Dodawanie przepisać regułę do pliku conf vhost-ssl w apache, ale nie mogłem zdefiniować warunku, który ma być używany, gdy obecny jest adres http:// wraz z poprawnym portem ssl: 81.
- Wiele Google .
Oto odpowiednie części konfiguracji Apache:
/etc/apache2/ports.conf
<IfModule mod_ssl.c>
NameVirtualHost *:81
Listen 81
</IfModule>
/ etc/apache2/sites z włączonym/vhost-nonssl
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName vhost.domain.com
DocumentRoot/home/xxx/sites/vhost/html
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) [url=https://%]https://%[/url]{HTTP_HOST}:81%{REQUEST_URI}
</Virtualhost>
/ etc/apache2/support sites/vhost-ssl
<VirtualHost *:81>
ServerAdmin webmaster@localhost
ServerName vhost.domain.com
DocumentRoot/home/xxx/sites/vhost/html
<Directory/>
Options FollowSymLinks
AllowOverride None AuthType Basic
AuthName "Restricted Vhost"
AuthUserFile/home/xxx/sites/vhost/.users
Require valid-user
</Directory>
<Directory/home/xxx/sites/vhost/html/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
/etc/apache2/conf.d/phpmyadmin.conf
Alias/phpmyadmin/usr/share/phpmyadmin
(Pozostała część pliku .conf jest domyślnie obcięta).
Wszystko w konfiguracji apache wydaje się działać dobrze - nadpisywanie z non-ssl na ssl, uwierzytelnianie http, problem pojawia się dopiero, gdy prześlę formularz logowania do phpmyadmin z
https://vhost.domain.com:81/index.php
https://vhost.domain.com:81/index.php
.
Inne konfiguracje:
Phpmyadmin jest domyślnie w pełni skonfigurowany, a php.ini ma tylko kilka drobnych zmian w pamięci i przekroczeniu limitu czasu. Wydaje się, że działają dobrze, jak wspomniano, inny skrypt php działa bez problemu, a phpmyadmin działa dobrze, gdy ręcznie wprowadzam poprawny schemat po zalogowaniu.
Szukam bandaża, który mogę dodać, aby zaoszczędzić mi kłopotów z ręcznym wpisywaniem https:// po zalogowaniu, prawdziwej poprawki, która sprawi, że phpmyadmin będzie zachowywał się tak, jak myślę, lub głębszego zrozumienia, dlaczego moje pożądane config to niemożliwe.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
1 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
$cfg['PmaAbsoluteUri'] = 'http://127.0.0.1/phpmyadmin';
Możesz spróbować zmienić
do
(i odpowiednio inne znaczenia) i zobacz, czy to ma znaczenie.