Virtuální weby přes SSL

Problém: Proč nemůžu použít SSL na virtuálních webových serverech?

Odpověď: Důvod je velmi technický. Ve skutečnosti je to podobný problém jako se slepicí a vejcem. Vrstva protokolu SSL je umístěna pod vrstvou protokolu HTTP a je vlastně jeho obálkou. Když je vytvořeno SSL spojení (HTTPS), Apache, resp. mod_ssl musí se vzdálenou stranou (klientem) vyjednat parametry SSL spojení (musí zjistit typ použitého šifrování, certifikát serveru apod.). Apache naproti tomu nemůže bez HTTP hlavičky Host delegovat dotaz na správný webový server. To je možné pouze po načtení této hlavičky od klienta. Tento proces ale nemůže být nastartován předtím, než je dokončeno vyjednávání parametrů SSL spojení. Ale tato informace je nutná již při samotném vyjednávání. Tedy to není principiálně možné. Bingo. Je to možné vyřešit použitím IP-based virtuálního serveru nebo pomocí jiné instance Apache/mod_ssl na jiném portu.

Pavel Janík
Viz též FAQ k mod_ssl a další dokumenty na www.modssl.org, kde je odpověď obecná, není vázána pouze na web server Apache.