Apache SSL + Name VirtualHost

Probléma:

Ha több name based virtual hostunk van amikre ssl-t szeretnénk és erre meg is vannak a tanusítványaink, akkor hiába konfiguráljuk fel hogy melyik hosthoz melyik tanusítvány tartozzon , minden esetben az először megtalált tanusítványt adja vissza.

Több megoldés létezik:

1: több ip címet adunk a szervernek és ip based virtual hostokat csinálunk ( nem minden esetben járható út )

2: több domainhez igényelünk egy tanusítványt ( nem minden esetben járható út )

2: különböző portokon figyelnek a virtualhostok ( böngészők nem biztos hogy szeretik )

3: name based virtual host sni képes apace-al ( a debian lenny -s apache ezt nem tudja )



Előfeltételek:

Szerver oldalon:

    - Openssl 0.9.8k vagy későbbi ( itt egy kipróbált változat )

    - Sni képes apache ( innen letölthető egy patchelt és kipróbált verzió )

Kliens oldalon a böngészőnek is támogatnia kell az sni -t ( a windows xp explorere sajnos nem tudja kezelni de attól az oldal még használható ).

A letöltött tar.gz -ket bontsuk ki majt telepítsük a deb fájlokat ( dpkg -i *.deb ).

A telepítés után érdemes még lefuttatni egy apt-get -f install -t hogy a csomagfüggőségek rendbe jöjjenek.

 

Innentől a szokásos módon csinálhatjuk a name virtual hostokat.

péda:

<VirtualHost *:443>

        ServerAdmin webmaster@localhost

        ServerName szerver1.xyz.hu

        DocumentRoot /var/www/szerver1

        SSLEngine on

        SSLCertificateFile /etc/apache2/ssl/szerver1.pem

        SSLCertificateKeyFile /etc/apache2/ssl/szerver1.key

        SSLCertificateChainFile /etc/apache2/ssl/szerver1.pem

       

........

</VirtualHost>

<VirtualHost *:443>

        ServerAdmin webmaster@localhost

        ServerName szerver2.xyz.hu

        DocumentRoot /var/www/szerver2

        SSLEngine on

        SSLCertificateFile /etc/apache2/ssl/szerver2.pem

        SSLCertificateKeyFile /etc/apache2/ssl/szerver2.key

        SSLCertificateChainFile /etc/apache2/ssl/szerver2.pem

       

........

</VirtualHost>

 

 

 

Shibboleth belépés