2009-02-19 17 views
10

Zajmuję się tworzeniem wielu formularzy, do których należy uzyskać dostęp tylko przez https. Mam dedykowany serwer z własnym certyfikatem i wszystkimi dobrymi rzeczami.Wymuś https dla całego serwera/domeny

Moje pytanie jest zatem dwojakie:

1). Jaki jest najlepszy sposób na wymuszenie każdego żądania na https? Czy istnieje lepszy sposób niż ta .htacess/mod_rewrite reguła:

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

2). Czy są jakieś potencjalne pułapki lub minusy, które wymuszają na https, o których powinienem myśleć (inne niż narzut, który i tak nie wydaje się być problemem)?

Odpowiedz

13

Co masz powinno być w porządku, to co używam:

RewriteCond %{HTTPS} !=on 
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L] 

R oznacza to przekierowanie zamiast przepisać, a L wskazuje, że silnik przepisać nie powinien wykonywać żadnych więcej przepisuje.

pierwotnie znaleźć to tutaj: Httpd Wiki

Edit:

Zapomniałem wspomnieć dyrektywy z SSLRequireSSL że zmusza wszystkich żądań za pośrednictwem protokołu HTTPS. Szczegóły można znaleźć w Apache Documentation.

+0

Z jakiegoś powodu, w mojej konfiguracji, twoja metoda nie działa, natomiast "moje". Każdy pomysł, dlaczego? Ponadto, dzięki lub wskazówka na temat SSLRequireSSL, ale rozumiem, że odrzuci żądania non-https, które nie są tym, czego chcę w tym przypadku. – da5id

+0

Interesująca, jakiej wersji Apache używasz? –

+0

Apache/2.2.3 (CentOS) – da5id