» »

[Apache] htaccess in certifikat

[Apache] htaccess in certifikat

Piranha ::

Zdravo!

Je možno apache skonfigurirati samo preko htaccess datoteke (gostovanje na oddaljenem strežniku) tako, da bi lahko na tisti strani uporabljal "lastnoročno" izdelane certifikate? Torej če povem natančneje... Mam domeno, mam spletni prostor na serveru. Rabil bi omogočit SSL na svoji strani a nimam root dostopa.

Kako naj to rešim?
Piranha

dolegar ::

Sam tega ne boš mogel storiti. Za uporabo certifikatov potrebuješ svoj IP, ker je certifikat vezan nanj.

Zgodovina sprememb…

  • spremenilo: dolegar ()

Piranha ::

wtf? ne razumem najbolje... zakaj jaz kot klient rabim svoj ip? Moj host ima svoj ip in svojo domeno. Certifikati so vezani na domene. Zanima me, kako lahko izključno samo preko .htaccess omogočim certifikate? Tudi certifikat že imam... samo kak ga vklopit?
Piranha

mHook ::

Certifikat se veže na ime strežnike (npr. www.slo-tech.com) in ne na IP.
Je pa res, da je https protokol narejen tako, da na enem paru ip:port lahko samo en certifikat. In ker je privzeti port za https 443 je lahko na enem IPju samo en https site (npr. https://www.slo-tech.com).
Lahko pa daš na isti IP več sitov, vendar ne na isti port (npr: https://www.slo-tech.com:444).

Preko .htaccess ne moreš vključiti certifikata, ker je ta datoteka za folder in ne za site.
To se upravlja v globalnih nastavitvah sita - direktiva SSLCertificateKeyFile. Več na Apache SSL documentation.

Looooooka ::

nekak dvomm da hoce clovk uporabt certifikat,ki ga verisign potrjuje ampak lepo unga ki ga lahko v apache-ju sam zgeneriras.tko da kar se ipja tice sploh ni problem in tak certifikat ni bindan na nic.
not sam pise odgovorna oseba drzava ime skupine...lahka das na kerkol server hocs itak bo v browserju pisal da tist k ga je izdal ni trusted.

drola ::

Ne gre tako. Problem je v tem, da je ime domene v requestu že v šifriranem delu, zato sta edina stvar, po kateri lahko Apache ugotovi, kateri certifikat uporabiti za dešifriranje, IP in port.
https://drola.si

Zgodovina sprememb…

  • spremenil: drola ()

kopernik ::

Ja, v certifikat gre tudi IP/domain name. Ampak to ni problem, pač zgeneriraš lastni certifikat za željeni server, pri katerem poznaš potrebne podatke. Kar hočem povedati je, da pač za vsak server (najbrž testni) zgeneriraš nov certifikat.

drola ::

V sam certifikat gre običajno le domena (v Common Name del).
Problem pa je v tem, kako Apache ve, katero stran hočeš, če pa so vsi ti podatki že v šifriranem delu zahtevka (tega brskalnik pošlje strežniku in vsebuje domeno, URL in podatke iz POST obrazcev). Edina stvar, po kateri strežnik ugotovi, da hočeš stran www.mojastran.com in ne strani in certifikata od www.drugastran.com, sta IP in port.
https://drola.si

kopernik ::

Ne vem, če prav razumem, v čemu vidiš dilemo. Ob SSL handshake-u strežnik prejme javni del odjemalčevega certifikata in odjemalčev IP. Na podlagi tega se bo odločil, ali odjemalcu zaupa. Na drugi strani pa client (browser) prejme javni del serverskega certifikata. Na podlagi podatkov iz certifikata in naslova, ki ga zahteva, se bo odločil, ali strežniku zaupa (v resnici je celoten proces dokaj zakompliciran, ampak v grobem se zgodi tako kot sem povedal).

Če je na obeh straneh rezultat handshake-a OK, se vzpostavi varna povezava in server lahko mirne duše dešifrira http zahtevek (POST, GET, whatever).

Zgodovina sprememb…

  • spremenil: kopernik ()

kopernik ::

Aja, mislim da štekam, v čem vidiš problem. Virtualne domene in več IP-jev na eni mašini ?

mHook ::

Kopernik: Kako pa naj server ve, kater javni certifikat naj pošlje nazaj klientu pri https zahtevi?
Odloči se na podlagi tega na keter IP in port je dobil zahtevo, ker hostname (kot pri http) (še) ni dostopen.

kopernik ::

Ne, saj zdaj razumem, prej sploh nisem razumel, na kaj drola cilja.

Če hočeš imeti na enem strežnik več domen vsako dodeliš na svoj IP (en network card ima lahko več IP naslovov, IP aliasing, rešitev z različnimi porti je kao neugodna za tiste, ki dostopajo do tvoje aplikacije - saj veš, če ni 443 ni standardni port, zato ga je potrebno odblokirati na firewallih, itd.). S tem sem se enkrat ukvarjal, sam me je potem zajebavala povezava apache-tomcat (mod_jk), ker se certifikat ni pošiljal do javanske aplikacije na tomcatu.

Mi imamo večinoma tako, da je en strežnik dedicated določeni aplikaciji in se običajno sploh ni potrebno zajebavati s temi zadevami.

Zgodovina sprememb…

  • spremenil: kopernik ()

MasterBlaster ::

SSL se more nastaviti ob zagonu web serverja, da se binda pravi port (privzeto 443), na katerem potem web server pričakuje requeste. .htaccess datoteka pa se preverja ob vsakem requestu. Se pravi potem, ko je request že na serverju, zato to ne gre.
Tk je pa pika .


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Proxy za certifikate

Oddelek: Informacijska varnost
81468 (967) jkreuztzfeld
»

Prijava z certifikatorm sigen-ca, custom

Oddelek: Izdelava spletišč
196293 (5929) jkreuztzfeld
»

SSL certifikat

Oddelek: Izdelava spletišč
81243 (1099) jinzo
»

SSL, kaj je kako deluje skratka čimveč o tem

Oddelek: Programiranje
82094 (1875) 1234qwer
»

Apache server - certifikati

Oddelek: Operacijski sistemi
61629 (1478) Ezekiel

Več podobnih tem