navody:hosting:ssl
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| navody:hosting:ssl [2014/01/14 17:03] – vytvořeno gandalf | navody:hosting:ssl [Neznámé datum] (aktuální) – odstraněno - upraveno mimo DokuWiki (Neznámé datum) 127.0.0.1 | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| - | ====== SSL certifikáty ====== | ||
| - | |||
| - | Zde popisuji, jak získat, nainstalovat a používat služby, zabezpečené pomocí SSL - [[wp> | ||
| - | |||
| - | ===== Generování requestu ===== | ||
| - | |||
| - | Aby to celé mělo smysl, musím si svůj certifikát nechat podepsat nějakou důvěryhodnou certifikační autoritou, kterou znají prohlížeče a poštovní klienti. | ||
| - | |||
| - | V krajním případě můžeme použít také vlastní certifikační autoritu nebo si vygenerovat tzv. self-signed certifikát, | ||
| - | |||
| - | Pro získání podepsaného certifikátu je nejprve nutné vygenerovat tajný klíč. Tajný klíč se zpravidla umisťuje do adresáře **/ | ||
| - | |||
| - | |||
| - | <WRAP center round box 80%> | ||
| - | Vygenerované certifikáty je dobré ukládat podle jména domény, např. vasedomena-cz.key Přípona souboru je pak určena dle významu klíče | ||
| - | |||
| - | * key - tajný klíč (necháváme na serveru) | ||
| - | * crt - veřejný klíč (dostaneme podepsaný od certifikační autority na základě žádosti) | ||
| - | * csr - žádost o certifikát. Žádost si vygeneruje k již vygenerovánu tajnému klíči a vzniklý soubor odešleme certifikační autoritě | ||
| - | * pem - tento soubor obsahuje zpravidla jak tajný klíč tak k němu odpovídající veřejný klíč včetně veřejných klíčů a root certifikátu | ||
| - | </ | ||
| - | |||
| - | | ||
| - | 1. V adresáři /// | ||
| - | |||
| - | <code bash> | ||
| - | openssl genrsa -out nazevdomeny.key 2048 | ||
| - | </ | ||
| - | |||
| - | 2. Nyní ke klíči připravíme žádost o certifikát | ||
| - | |||
| - | <code bash> | ||
| - | openssl req -new -key nazevdomeny.key -out nazevdomeny.csr | ||
| - | </ | ||
| - | |||
| - | 3. Soubor < | ||
| - | |||
| - | 4. Jakmile je proces u autority hotov, obdržíme podepsaný certifikát. Tento certifikát následně uložíme ve tvaru **nazevdomeny.crt** do adresáře /// | ||
| - | |||
| - | <WRAP left round tip 60%> | ||
| - | V našem případě využíváme certifikační autoritu [[http:// | ||
| - | </ | ||
| - | |||
| - | V našem případě tedy stáhneme do adresáře /// | ||
| - | |||
| - | <code bash> | ||
| - | cat / | ||
| - | </ | ||
| - | |||
| - | |||
| - | ===== Nastavení Apache ===== | ||
| - | |||
| - | Zpravidla se používá pro každou doménu, kterou chceme zabezpečit, | ||
| - | |||
| - | V Apachi je potřeba povolit mod_ssl | ||
| - | |||
| - | < | ||
| - | a2enmod ssl | ||
| - | </ | ||
| - | |||
| - | ==== Konfigurace virtual hostu ==== | ||
| - | |||
| - | Příklad konfigurace Apache virtualhostu. Věnujte pozornost nastavení zejména položek | ||
| - | * VirtualHost - Uvadíme IP adresu, na které chceme SSL provozovat | ||
| - | * ServerName a ServerAlias - Uvádíme doménu, na kterou je vystaven SSL certifikát. Pokud certifikát obsahuje alternativní jména, uvedeme je dále jako ServerAlias | ||
| - | * SSLCertificateFile - podepsaný certifikát | ||
| - | * SSLCertificateKeyFile - náš tajný klíč | ||
| - | * SSLCertificateChainFile a SSLCACertificateFile - ChainFile a Root certifikát, | ||
| - | |||
| - | **/ | ||
| - | <code file> | ||
| - | Listen 443 | ||
| - | NameVirtualHost 123.456.78.90: | ||
| - | </ | ||
| - | |||
| - | **/ | ||
| - | <code file> | ||
| - | < | ||
| - | ServerAdmin admin@vasedomena | ||
| - | ServerName vasedomena | ||
| - | | ||
| - | DocumentRoot / | ||
| - | < | ||
| - | Options FollowSymLinks MultiViews | ||
| - | AllowOverride None | ||
| - | Order allow,deny | ||
| - | allow from all | ||
| - | </ | ||
| - | |||
| - | ErrorLog / | ||
| - | LogLevel warn | ||
| - | CustomLog / | ||
| - | |||
| - | # SSL Engine Switch: | ||
| - | # | ||
| - | SSLEngine on | ||
| - | |||
| - | # A self-signed (snakeoil) certificate can be created by installing | ||
| - | # the ssl-cert package. See | ||
| - | # / | ||
| - | # If both key and certificate are stored in the same file, only the | ||
| - | # | ||
| - | SSLCertificateFile | ||
| - | SSLCertificateKeyFile / | ||
| - | |||
| - | # | ||
| - | # Point SSLCertificateChainFile at a file containing the | ||
| - | # | ||
| - | # | ||
| - | # the referenced file can be the same as SSLCertificateFile | ||
| - | # when the CA certificates are directly appended to the server | ||
| - | # | ||
| - | SSLCertificateChainFile / | ||
| - | |||
| - | # | ||
| - | # Set the CA certificate verification path where to find CA | ||
| - | # | ||
| - | # huge file containing all of them (file must be PEM encoded) | ||
| - | # Note: Inside SSLCACertificatePath you need hash symlinks | ||
| - | # to point to the certificate files. Use the provided | ||
| - | # | ||
| - | SSLCACertificatePath / | ||
| - | SSLCACertificateFile / | ||
| - | |||
| - | </ | ||
| - | |||
| - | <WRAP left round important 80%> | ||
| - | Pokud neuvedete SSLCertificateChainFile a SSLCACertificateFile, | ||
| - | </ | ||
| - | |||
| - | ==== Použítí SNI ==== | ||
| - | |||
| - | Pokud např. nemáme dostatek veřejných IP adres pro každou SSL doménu, můžeme využít SNI, tzn. certifikáty se budou brát podle jména domény a všechno poběží s jednou IP adresou. Nevýhoda tohoto řešení je, že starší prohlížeče nebo většina textových klientů bude mít potíže se zobrazením. Podrobnosti o SNI lze získat na [[wp> | ||
| - | |||
| - | V současné době umí SNI pouze tyto prohlížeče: | ||
| - | |||
| - | * Mozilla Firefox 2.0 nebo novější | ||
| - | * Opera 8.0 nebo novější (musí být povolen protokol TLS) | ||
| - | * Internet Explorer 7 (Vista, ne XP) nebo novější | ||
| - | * Google Chrome | ||
| - | * Safari 3.2.1 Mac OS X 10.5.6 | ||
| - | |||
| - | |||
| - | Z hlediska SNI je nastavení virtualhostu uplně stejné, jako v předchozím případě, akorát se na jednu IP adresu na portu 443 binduje libovolný počet virtualů s ruzným ServerName a svojí definicí certifikátů. | ||
| - | |||
| - | <WRAP left round important 80%> | ||
| - | POZOR: Pokud klient NEPODPORUJE SNI, pak mu Apache v uvedeném nastavení na portu 443 bude servírovat první virtualhost, | ||
| - | </ | ||
navody/hosting/ssl.1389715426.txt.gz · Poslední úprava: 2014/01/14 17:03 autor: gandalf
