Windows 10 vaikeseadete muutmine

Püüan SSL-i sundida .htaccess jagatud hostil. See tähendab, et seal on mul juurdepääs ainult .htaccess ja mitte peamine VirtualHost seadistamine. Ma tean, et saate reegli lisada VirtualHost config-fail sundida SSL-i, mis sealt üles korjatakse (ja mille järgi esimesena toimitakse), vältides topeltautentimist, kuid ma ei jõua selleni.

Siin on minu tehtud edusammud:

1. seadistamine

See töötab päris hästi, kuid külastamisel sunnib see topeltautentimist http://example.com - üks kord http-i ja seejärel üks https-i jaoks. Kui olete sisse loginud, suunatakse see automaatselt ümber http://example.com/page1.html https-i partnerile lihtsalt sobib:

RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteEngine on RewriteCond %{HTTP_HOST} !(^www\.example\.com*)$ RewriteRule (.*) https://www.example.com$1 [R=301,L] AuthName 'Locked' AuthUserFile '/home/.htpasswd' AuthType Basic require valid-user 

Konfig 2

Kui lisan faili ülaossa järgmise, töötab see palju paremini, kuna see lülitub SSL-ile enne parooli küsimist:

SSLOptions +StrictRequire SSLRequireSSL SSLRequire %{HTTP_HOST} eq 'example.com' ErrorDocument 403 https://example.com 

On nutikas, kuidas ta seda kasutab SSLRequireSSL valik ja ErrorDocument 403 suunata saidi turvalisse versiooni. Minu ainus kaebus on see, et kui proovite juurde pääseda http://example.com/page1.html, suunab see ümber https://example.com/

Nii et see sunnib SSL-i ilma topelt sisselogimiseta, kuid ei edasta mitte-SSL-ressursse korralikult oma SSL-i kolleegidele.

Esimese konfiguratsiooni kohta mainis Insyte "mod_rewrite kasutamine lihtsa ümbersuunamise teostamiseks on natuke üle jõu. Kasutage selle asemel suunamisdirektiivi. Võimalik, et see võib isegi teie probleemi lahendada, kuna usun, et mod_rewrite reeglid on mõned viimastest töödeldavatest direktiividest, vahetult enne faili haaramist failisüsteemist'

Mul ei ole olnud sellist õnne, et leida ümbersuunamisdirektiiviga jõu-ssl seadistusvõimalust ja seetõttu pole ma suutnud seda teooriat testida.

  • Mod_rewrite'i kasutamine HTTP-HTTPS-i ümbersuunamiseks kataloogis ".htaccess" ei toimi, kuna see tehakse pärast autentimist. AGA kui see on seadistatud serveris, siis see juhtub ENNE. Mod_rewrite suudab säilitada ümbersuunatud URL-i alamlehekülje komponendid ning ei vaja reeglisse kõvasti kodeeritud serveri nime ja lehte.

Kui teil on serveripoolne käivitamine, näiteks php või cgi, määrake oma ErrorDocument failiks, mis ei vaja autentimist. See fail peaks suunama kliendi õigesse asukohta. Apache seab teid välja aitamiseks mitu REDIRECT_ - eesliidetud keskkonnamuutujat ja algne keskkond säilib - vt http://httpd.apache.org/docs/trunk/custom-error.html.

Teie .htaccess, tehke nagu ülaltoodud teine ​​näide, kuid muutke ErrorDocument sisedokumendiks:

SSLOptions +StrictRequire SSLRequireSSL SSLRequire %{HTTP_HOST} eq 'example.com' ErrorDocument 403 /err_redirect.php AuthName 'Locked' AuthUserFile '/home/.htpasswd' AuthType Basic require valid-user  AuthType none  

Seejärel saatke selles tõrke dokumendis sobiv HTTP-olek ja asukoha päis. Siin on lihtne näide php-s:

<?php header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);  ?> var13 ->

See sobib ideaalselt selleks, mida ma proovin teha. Mul on vastavates kataloogides mõned PHP-põhised admintoolid /admin/, sisse /admin/.htaccess Olen loetlenud:

SSLOptions +StrictRequire SSLRequireSSL SSLRequire %{HTTP_HOST} eq 'www.example.com' ErrorDocument 403 https://www.example.com/admin/ AuthName 'Enter your credentials' AuthType Basic AuthUserFile /etc/httpd/passwd/passwordfile Require user valid-user 

turvaelementi minnes example.com/admin see suunab selle turvaliseks example.com/admin, küsib seejärel autentimist.

  • Nutikas kasutada oma 403 direktiivi ümbersuunamiseks

Mul oli sama probleem ja ma kasutan seda nüüd:

AuthType Basic AuthName 'Protected area' # your auth provider setup here Require expr '%{ENV:HTTPS} !~ /on/i' Require valid-user RewriteEngine On # Redirect alias to preferred hostname RewriteCond expr '! %{HTTP_HOST} -strmatch '%{SERVER_NAME}'' RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] # Redirect http:// to https:// RewriteCond expr '%{ENV:HTTPS} !~ /on/i' RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

Põhimõtteliselt annab see juurdepääsu, kui http:// kasutatakse, kuid suunab kõik taotlused aadressile https:// sel juhul.

ma kasutan '%{ENV:HTTPS} !~ /on/i' kuna leidsin, et mõned süsteemid (nt SSL-i volituste taga) ei sea HTTPS-i "välja", nagu apache teeb http://või määrake selle abil oleku „Sees“ asemel „Sees“ https://. Lisasin ka ümbersuunamise SERVER_NAME, juhul kui keegi seda soovib.

Mul pole kõigi oma pärandatud varjunimede kohta sertifikaati, seega on sellisel juhul esmalt vaja ümber suunata vaikimisi hostinimele.

  • Ei ... Juurdepääsu võimaldamine, kui kasutatakse http: //, tähendab, et parooli pole vaja ja seega ei edastata seda kunagi.

none: Charles Robertson | none