Instalace multidoménového UC/SAN SSL certifikátu na Apache (mod_rewrite)
Poznámka: O instalaci podepsaného SSL certifikátu můžete požádat Vašeho poskytovatele hostingových služeb.
- Společnost Alpiro je prodejcem SSL certifikátů a digitálních osobních (S/MIME) certifikátů. Instalaci SSL certifikátů zajišťuje sám klient vlastními silami a prostředky. Společnost Alpiro nenese odpovědnost za případné komplikace s instalací certifikátu na server. V případě obtíží s instalací certifikátu se obraťte na výrobce serverového softwaru nebo příslušnou dokumentaci, kterou si můžete od výrobce vyžádat.
- Přestože byl postup instalace SSL certifikátu podle tohoto návodu úspěšně otestován, mějtě na paměti, že tento návod je pouze příkladný a nemusí odpovídat konkrétní konfiguraci nebo verzi vašeho serveru. Společnost Alpiro neručí za jakékoliv případné škody způsobené použitím tohoto materiálu.
Výhody tohoto řešení:
- stačí jedna IP adresa (úspora nákladů) pro zabezpečení prakticky neomezeného množství domén
- větší kompatibilita oproti instalaci SSL pomocí SNI rozšíření, které nefunguje v Internet Explorer na Win XP
Co je potřeba:
TIP: Toto řešení lze použít i pro instalaci Wildcard SSL certifikátu.
V tomto příkladu budeme pracovat s UC/SAN certifikátem vystaveným pro 6 domén:
- www.ssls.cz
- ssls.cz
- www.alpiro.cz
- alpiro.cz
- www.alpiro.eu
- alpiro.eu
přičemž:
- UC/SAN SSL certifikát máme uložený v souboru server.cer,
- privátní klíč v souboru private.key,
- a intermediate certifikát podepisující certifikační autority (CA) v souboru intermediate.cer.
Příklad nastavení Apache Virtual Host bez SSL
Takto může vypadat velice jednoduché nastavení Virtual Host záznamů pro domény před instalací SSL certifikátu. Standardně toto nastavení najdete v souborech umístěných v adresáři /etc/apache2/sites-available/ (Linux) nebo v souboru httpd.conf.
PositiveSSL
UC/SAN
- Nejžádanější SAN
- Záruka $10,000
Od 109 Kč / doménu
Zabezpečte:
<VirtualHost 1.2.3.4:80>
ServerName www.ssls.cz
ServerAlias ssls.cz
DocumentRoot /var/www/ssls.cz
</VirtualHost>
<VirtualHost 1.2.3.4:80>
ServerName www.alpiro.cz
ServerAlias alpiro.cz
DocumentRoot /var/www/alpiro.cz
</VirtualHost>
<VirtualHost 1.2.3.4:80>
ServerName www.alpiro.eu
ServerAlias alpiro.eu
DocumentRoot /var/www/alpiro.eu
</VirtualHost>
Příklad nastavení Apache (IP based Virtual Host)
Abychom mohli k webovým stránkám přistoupit pomocí zabezpečeného SSL protokolu přes https://, přidáme další záznam, viz. níže.
Všimněte si, že jsme všechny tři VirtualHosty "sloučili" do jednoho a směrování domén do příslušných adresářů provedli pomocí mod_rewrite namísto direktivy DocumentRoot. Kdybychom pro každou doménu vytvořili vlastní VirtualHost, museli bychom pro každý z nich vyčlenit vlastní IP adresu. Takto je všechny máme pod jedním VirtualHostem s jedinou IP adresou.
<VirtualHost 1.2.3.4:443>
ServerName www.ssls.cz # Common Name (CN)
ServerAlias ssls.cz alpiro.cz alpiro.eu www.alpiro.cz www.alpiro.eu # přídavné SAN domény
DocumentRoot /var/www/ssls.cz # Nasměrování do adresářů provedeme níže pomocí mod_rewrite!
SSLEngine on
SSLProtocol all -SSLv3 -SSLv2
SSLCertificateFile /cesta/k/server.cer # Cesta k UC/SAN certifikátu
SSLCACertificateFile /cesta/k/intermediate.cer # Cesta k intermediate CA certifikátu
SSLCertificateKeyFile /cesta/k/private.key # Cesta k privátnímu klíči
# Aktivujeme mod_rewrite :
RewriteEngine on
# Nastavení pro doménu ssls.cz a www.ssls.cz :
RewriteCond %{HTTP_HOST} ^(www\.)?ssls\.cz
RewriteCond %{REQUEST_URI} !^/var/www/ssls.cz
RewriteRule ^(.*) /var/www/ssls.cz/$1
# Nastavení pro doménu alpiro.cz a www.alpiro.cz :
RewriteCond %{HTTP_HOST} ^(www\.)?alpiro\.cz
RewriteCond %{REQUEST_URI} !^/var/www/alpiro.cz
RewriteRule ^(.*) /var/www/alpiro.cz/$1
# Nastavení pro doménu alpiro.eu a www.alpiro.eu :
RewriteCond %{HTTP_HOST} ^(www\.)?alpiro\.eu
RewriteCond %{REQUEST_URI} !^/var/www/alpiro.eu
RewriteRule ^(.*) /var/www/alpiro.eu/$1
</VirtualHost>
Nezapomeňte uvést správnou veřejnou IP adresu, v našem případě jsme použili 1.2.3.4:443 (443 je standardní číslo portu pro službu WWW s SSL zabezpečením). Předpokládá se, že A záznamy příslušných domén mají v DNS nastavenou IP adresu 1.2.3.4.
Důležité: Bez instalace intermediate certifikátu se budou uživateli v prohlížeči zobrazovat varování o nedůvěryhodném SSL certifikátu. Je nutné nainstalovat správný intermediate certifikát pro konkrétní SSL certifikát.
Po instalaci SSL certifikátu důrazně doporučujeme ověřit si, že server klientům odesílá intermediate certifikáty ve správném pořadí. To můžete snadno ověřit pomocí nástroje
SSL Tester.
Přesměrování HTTP na HTTPS
Protože není žádoucí provozovat web zároveň na zabezpečeném i nezabezpečeném protokolu, je nutné přesměrovat veškerý provoz z HTTP na HTTPS. Ke každému nezabezpečenému VirtualHostu tedy přidáme:
RewriteEngine On
RewriteCond %{HTTPS} != on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
a rovnou odstraníme direktivu DocumentRoot, která přesměrováním na zabezpečený protokol HTTPS ztrácí svůj smysl. Zároveň můžeme všechny tyto VirtualHosty sloučit do jednoho. V našem případě tedy budou naše původní nezabezpečené VirtualHost vypadat takto:
<VirtualHost 1.2.3.4:80>
ServerName www.ssls.cz
ServerAlias ssls.cz www.alpiro.cz alpiro.cz www.alpiro.eu alpiro.eu
DocumentRoot /var/www/ssls.cz
RewriteEngine On
RewriteCond %{HTTPS} != on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
Ve finále bude náš soubor s VirtualHosty na jediné IP adrese vypadat takto:
<VirtualHost 1.2.3.4:80>
ServerName www.ssls.cz
ServerAlias ssls.cz www.alpiro.cz alpiro.cz www.alpiro.eu alpiro.eu
RewriteEngine On
RewriteCond %{HTTPS} != on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
<VirtualHost 1.2.3.4:443>
ServerName www.ssls.cz
ServerAlias ssls.cz www.alpiro.cz alpiro.cz www.alpiro.eu alpiro.eu
SSLEngine on
SSLProtocol all -SSLv3 -SSLv2
SSLCertificateFile /cesta/k/server.cer
SSLCACertificateFile /cesta/k/intermediate.cer
SSLCertificateKeyFile /cesta/k/private.key
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?ssls\.cz
RewriteCond %{REQUEST_URI} !^/var/www/ssls.cz
RewriteRule ^(.*) /var/www/ssls.cz/$1
RewriteCond %{HTTP_HOST} ^(www\.)?alpiro\.cz
RewriteCond %{REQUEST_URI} !^/var/www/alpiro.cz
RewriteRule ^(.*) /var/www/alpiro.cz/$1
RewriteCond %{HTTP_HOST} ^(www\.)?alpiro\.eu
RewriteCond %{REQUEST_URI} !^/var/www/alpiro.eu
RewriteRule ^(.*) /var/www/alpiro.eu/$1
</VirtualHost>
Restartujte webový server
$ /etc/init.d/apache2 restart
anebo:
$ apache2ctl stop
$ apache2ctl start
Kontrola nastavení
Pokud Apache po restartu nehlásí žádná varování týkající se SSL, pak by mělo být vše v pořádku. Pro jistotu můžete ověřit nastavení všech VirtualHostů příkazem apache2ctl -S a následně jednoduše vyzkoušet přistoupit na URL adresu zabezpečené domény přímo z webového prohlížeče.
Přejděte na důvěryhodný SSL certifikát AlpiroSSL se silným až 256-bit šifrováním a ušetřete.
Chraňte svou reputaci a zajistěte maximální důvěryhodnost s TLS/SSL certifikátem s EV.
Porovnejte si všechny výhody i nevýhody nejžádanějších SSL certifikátů — bez obalu.
Skonsolidujte všechny své SSL certifikáty do jednoho multi-doménového SSL certifikátu!