howto:hosting:ssl
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
howto:hosting:ssl [2017/10/19 20:42] – [Priklad pro pouziti bez soucinnosti stavajiciho webserveru] harvie | howto:hosting:ssl [2024/10/30 16:24] (aktuální) – gandalf | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
====== SSL certifikáty ====== | ====== SSL certifikáty ====== | ||
- | Zde popisuji, jak získat, nainstalovat a používat služby, zabezpečené pomocí TLS - [[wp> | + | Zde popisuji, jak získat, nainstalovat a používat služby, zabezpečené pomocí TLS - [[wp> |
+ | |||
+ | Testy lze take automatizovat skriptem [[https:// | ||
+ | <code bash> | ||
===== CertBot ===== | ===== CertBot ===== | ||
Řádek 11: | Řádek 14: | ||
<code bash> | <code bash> | ||
certbot certonly --webroot --webroot-path /srv/http/ \ | certbot certonly --webroot --webroot-path /srv/http/ \ | ||
- | --renew-hook " | + | --renew-hook " |
--rsa-key-size 4096 \ | --rsa-key-size 4096 \ | ||
-d harvie.cz -d www.harvie.cz -d blog.harvie.cz -d wiki.harvie.cz | -d harvie.cz -d www.harvie.cz -d blog.harvie.cz -d wiki.harvie.cz | ||
Řádek 25: | Řádek 28: | ||
RewriteRule .well-known/ | RewriteRule .well-known/ | ||
</ | </ | ||
+ | |||
+ | ==== Rozšíření stávajícího certifikátu ==== | ||
+ | |||
+ | Již vygenerovaný Letsencrypt cerifikát můžeme rozšířit o další doménu nebo naopak změnit výčet dalších domén kdykoliv. Nutností je pouze zachování hlavní domény (ta co je uvedená za prvním parametrem -d) | ||
+ | Výčet domén, které chceme přidávat, uvadíme v dalších pořadí vždy s parametrem -d | ||
+ | |||
+ | < | ||
+ | root@s1:~# certbot certonly --webroot --webroot-path / | ||
+ | Saving debug log to / | ||
+ | |||
+ | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
+ | An RSA certificate named s1.spojenet.cz already exists. Do you want to update | ||
+ | its key type to ECDSA? | ||
+ | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
+ | (U)pdate key type/(K)eep existing key type: u | ||
+ | |||
+ | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
+ | You have an existing certificate that contains a portion of the domains you | ||
+ | requested (ref: / | ||
+ | |||
+ | It contains these names: s1.spojenet.cz | ||
+ | |||
+ | You requested these names for the new certificate: | ||
+ | vysehrad.spoje.net. | ||
+ | |||
+ | Do you want to expand and replace this existing certificate with the new | ||
+ | certificate? | ||
+ | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
+ | (E)xpand/ | ||
+ | Renewing an existing certificate for s1.spojenet.cz and vysehrad.spoje.net | ||
+ | |||
+ | Successfully received certificate. | ||
+ | Certificate is saved at: / | ||
+ | Key is saved at: / | ||
+ | This certificate expires on 2024-08-20. | ||
+ | These files will be updated when the certificate renews. | ||
+ | Certbot has set up a scheduled task to automatically renew this certificate in the background. | ||
+ | |||
+ | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
+ | If you like Certbot, please consider supporting our work by: | ||
+ | * Donating to ISRG / Let's Encrypt: | ||
+ | * Donating to EFF: https:// | ||
+ | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
+ | |||
+ | </ | ||
+ | |||
==== Priklad pro pouziti bez soucinnosti stavajiciho webserveru ==== | ==== Priklad pro pouziti bez soucinnosti stavajiciho webserveru ==== | ||
Řádek 36: | Řádek 85: | ||
--pre-hook " | --pre-hook " | ||
--post-hook " | --post-hook " | ||
- | --renew-hook " | + | --renew-hook " |
--rsa-key-size 4096 \ | --rsa-key-size 4096 \ | ||
-d harvie.cz -d www.harvie.cz -d blog.harvie.cz -d wiki.harvie.cz | -d harvie.cz -d www.harvie.cz -d blog.harvie.cz -d wiki.harvie.cz | ||
Řádek 42: | Řádek 91: | ||
==== Automaticka obnova certifikatu ==== | ==== Automaticka obnova certifikatu ==== | ||
- | Obnova certifikatu se provadi prikazem '' | + | Obnova certifikatu se provadi prikazem '' |
+ | |||
+ | Jen je potreba mit spravne nastavene hooky, aby se korektne restartovaly sluzby a vzdy po obnoveni nacetly novy certifikat. Hooky se zadavaji/ | ||
Řádek 66: | Řádek 117: | ||
+ | ====== Nastavení služeb ====== | ||
- | ===== Nastavení Apache | + | ===== Apache2 |
Zpravidla se používá pro každou doménu, kterou chceme zabezpečit, | Zpravidla se používá pro každou doménu, kterou chceme zabezpečit, | ||
Řádek 97: | Řádek 149: | ||
</ | </ | ||
+ | ===== Nginx ===== | ||
+ | <code ini> | ||
+ | location ^~ / | ||
+ | allow all; | ||
+ | default_type " | ||
+ | alias / | ||
+ | } | ||
+ | </ | ||
==== Použítí SNI ==== | ==== Použítí SNI ==== | ||
+ | |||
+ | <note warning> | ||
+ | | ||
+ | |||
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> | 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> | ||
Řádek 113: | Řádek 177: | ||
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ů. | 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 center round important | + | |
- | POZOR: Pokud klient NEPODPORUJE SNI, pak mu Apache v uvedeném nastavení na portu 443 bude servírovat první virtualhost, | + | <note important> |
- | </WRAP> | + | |
===== Courier IMAP / POP ===== | ===== Courier IMAP / POP ===== | ||
Řádek 165: | Řádek 229: | ||
</ | </ | ||
+ | ==== Odkazy souvisejici se SSL ==== | ||
- | ====== Překonané | + | * [[https:// |
- | ===== Testování nainstalovaného certifikátu ===== | ||
- | Nainstalovaný certifikát můžeme otestovat buď přímo v prohlížeči tj. https:// | + | ====== Překonané |
- | Ostatní služby můžeme testovat pomocí příkazu openssl - [[man>OpenSSL]]. V případě postfixu použijeme tento příkaz | + | <note>Nasledujici sekce jsou dnes defakto zastarale. Self-signed certifikaty a do znacne miry i placene certifkaty ziskavane pomoci CSR jsou dnes vetsinou nahrazeny letsencryptem a situace se ma v nasledujicim roce jeste zlepsit. Co se tyka bugu v implementacich |
- | + | ||
- | <code bash> | + | |
- | openssl s_client | + | |
- | </ | + | |
- | + | ||
- | <note tip> | + | |
- | Pro komplexní otestování korektního nastavení | + | |
- | jeho aktuální verzi naleznete na stejnojmenných stránkách [[https:// | + | |
- | </ | + | |
===== Generování requestu ===== | ===== Generování requestu ===== | ||
Řádek 264: | Řádek 319: | ||
openssl x509 -noout -modulus -in test.crt | openssl md5 | openssl x509 -noout -modulus -in test.crt | openssl md5 | ||
+ | |||
+ | ===== Ověření certificate chainu pres OpenSSL ===== | ||
+ | |||
+ | openssl verify -verbose -CAfile le-root-ca.pem / | ||
howto/hosting/ssl.1508438537.txt.gz · Poslední úprava: 2017/10/19 20:42 autor: harvie