ugrás a tartalomhoz

VirtualHost + SSL certicicate + symbolic link + hiba

Cadeyrn · 2008. Már. 17. (H), 09.53
Üdv!

<VirtualHost *:443>
ServerName valami.domain.com
DocumentRoot /www/domain.com/valami

        SSLEngine on
        SSLCertificateFile      /etc/apache2/ssl/certs/domain.com.crt
        SSLCertificateKeyFile   /etc/apache2/ssl/keys/domain.com.key
</VirtualHost>


A /www/domain.com/valami egy szimbolikus link, ami valahova a /usr/share-be mutat.
Ilyen configból van még jópár domainre, ugyanilyen elrendezésben, ugyanígy szimbolikus linkkel.

A gond, hogy az apache minden domain minden ilyen bejegyzéséhez csak a legelőször beolvasott domain konfigurációjában fellelt certificate-et használja, mintha a szimbolikus link másik végéhez (tehát ahova mutat) rendelné hozzá a certificate-et.

Napok óta szenvedek a dologgal, de nem szeretném elhagyni a szimbolikus linkeket.
Valakinek van ötlete arra, hogy hogyan tudnám rendesen, a domainekhez készített certificate-et működésre bírni?

Előre is köszönöm,
cadeyrn
 
1

Dedikált IP?

janoszen · 2008. Már. 17. (H), 10.22
A probléma ott lesz, hogy az SSL működéséhez dedikált IP-re van szükséged per certificate és azt a VirtualHost részbe be is kell írnod azt az IP-t, különben a * minden IP-re match-elni fog. Mivel az SSL csomagolás IP szinten megy és HTTP protokol ott nincs, egy IP-n csak egy SSL certificatet tudsz csinálni, virtual hostokra nincs lehetőség.
2

self signed cert...

Cadeyrn · 2008. Már. 17. (H), 10.43
self signed certificate-ekről van szó, nem vásároltakról, mivel "csak" webmail és hasonló felületekről van szó, úgy gondoltam egyelőre elég.

ebben az esetben az a fő gond, hogy ha aldomain-t adok meg, akkor már hibát jelez, ha a domainhez állítottam ki a certificate-et, tehát a kérdés ezután az lesz, hogy hogyan tudom elkerülni, hogy hibát jelezzen ilyen esetekben.
3

Sehogy

janoszen · 2008. Már. 17. (H), 16.22
Mint mondottam, az SSL alacsonyabb szinten történik, mint a HTTP, tehát a HTTP headerek által megadott host nem látszik.

Úgy képzeld el, hogy a böngésző elküldi az adott domain névvel a 443-as portra a lekérdezését, ahol egy szerver figyel. Itt a csomagok SSL-be vannak csomagolva. A böngésző a certificate alapján validál (tehát hogy a cert a megfelelő hostra szól-e), majd ezután küldi a HTTP lekérdezést. Ergó, ha a validáció nem stimmel, el se fog menni a host header, ami alapján lehetne virtualhostokra lebontani a lekérdezést.

Pont ezért csak dedikált IP-port párossal tudsz hibaüzenet nélkül SSL-t üzemeltetni. Másképp nem fog menni sehogy sem, annó amikor a szerveremet berendeztem, végigjátszottam ezt a történetet.

Ergó, ha meg akarod oldani a problémát, akkor vagy veszel minden SSL-ező subdomain-nek egy IP-t, vagy minden SSL-es vhostnak más porton futtatod az SSL-t (ekkor viszont ronda lesz az URL).
4

meg lehet csinálni

Cadeyrn · 2008. Már. 18. (K), 16.55
Üdv!

Azt hiszem, ráleltem a megoldásra, meg lehet csinálni, csak egyelőre alig értek valamit belőle:
http://howtoforge.com/enable-multiple-https-sites-on-one-ip-using-tls-extensions-on-debian-etch
Jóval bonyolultabb, mint hittem.