GNU/Linux >> Znalost Linux >  >> Linux

Myšlenky na středně kompatibilní SSL s certifikáty Lets Encrypt

Let’s Encrypt je bezplatná, automatizovaná a otevřená certifikační autorita (CA), provozovaná ve prospěch veřejnosti. Klíčové principy Let’s Encrypt jsou:

Klíčové principy Let’s Encrypt jsou zdarma:Každý, kdo vlastní název domény, může použít Let’s Encrypt k získání důvěryhodného certifikátu za nulové náklady.

  • Zdarma: Každý, kdo vlastní název domény, může pomocí Let’s Encrypt získat důvěryhodný certifikát za nulové náklady.
  • Automaticky: Software běžící na webovém serveru může spolupracovat s Let’s Encrypt a bezbolestně získat certifikát, bezpečně jej nakonfigurovat pro použití a automaticky se postarat o obnovu.
  • Zabezpečení: Let’s Encrypt poslouží jako platforma pro rozvoj osvědčených postupů zabezpečení TLS, a to jak na straně CA, tak tím, že pomůže operátorům webů správně zabezpečit jejich servery.
  • Transparentní: Všechny vydané nebo zrušené certifikáty budou veřejně zaznamenány a budou k dispozici komukoli.
  • Otevřít: Protokol o automatickém vydávání a obnově bude zveřejněn jako otevřený standard, který mohou ostatní přijmout.
  • Kooperativní: Stejně jako samotné základní internetové protokoly je Let’s Encrypt společným úsilím ve prospěch komunity, mimo kontrolu jakékoli organizace.
    (zdroj:https://letsencrypt.org/about/)

Úvod

Nejprve se musíme zmínit o některých stinných stránkách služby Let's Encrypt. Jakkoli je myšlenka bezplatné veřejné a otevřené certifikační autority skvělá, přináší nám také mnoho problémů. Vývojáři se snažili systém získávání certifikátů co nejvíce zjednodušit, ale stále to vyžaduje vyšší zručnost správy serveru. Proto mnoho vývojářů, jako je ten z ISPConfig (http://www.ispconfig.org/), implementovalo toto řešení přímo do svého. To lidem přináší efektivnější nasazení a dohled nad celým systémem mnohem jednodušší a flexibilnější.

Skutečná komplikace

Mnoho lidí se rozhodlo implementovat Let's Encrypt do svých produkčních stránek. Považuji to stále za velmi špatný nápad, který by se měl dělat, aniž bych byl velmi (ale opravdu velmi) opatrný. Let's Encrypt vám přináší svobodu, ale také vás omezuje v používání certifikátu s šifrováním SHA-256 RSA. Podpora pro SHA-256 se za posledních několik let zlepšila. Většina prohlížečů, platforem, poštovních klientů a mobilních zařízení již SHA-256 podporuje. Některé starší operační systémy, například Windows XP starší než SP3, však nepodporují šifrování SHA-256. Mnoho organizací bude schopno převést na SHA-256, aniž by narazily na problémy s uživatelským prostředím, a mnozí možná budou chtít povzbudit uživatele se staršími, méně bezpečnými systémy, aby upgradovali.

V tomto tutoriálu se s touto nekompatibilitou vypořádáme jednoduchým, ale stále nepříjemným způsobem.

Předpoklady

  • Apache verze 2.4 a vyšší
  • OpenSSL verze 1.0.1e a vyšší
  • Apache mod_rewrite povolen

Celá myšlenka

Jak již bylo zmíněno, na internetu stále existují zařízení nekompatibilní s podpisem SHA-256. Když jsem byl nucen nasadit SSL na některé weby, musel jsem se rozhodnout mezi dvěma možnostmi:

  1. Pomocí Let's Encrypt to máte zdarma, ale ne pro všechny.
  2. Zakoupení certifikátu se 128bitovým podpisem.

No, stále možnost č. 1 byl jediný způsob, jak byl zákazníkovi slíben před mnoha dny (:Už žádná teorie:

Už žádná teorie

Doufám, že jsem vysvětlil potřebné a nyní se můžeme vypořádat s nepodporovanými diváky našeho webu. Mnoho lidí používá počítače se systémem Windows XP s aktualizací SP2 a nižší (Ano, je jich stále dost). Takže musíme tyto lidi filtrovat.

Do vašeho „/etc/apache2/sites-available/vaše_doména.com.conf“ přidejte na konec souboru následující:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !(NT\ 5) [NC]
RewriteRule ^(.*) https:// your_domain.com [R]

RewriteCond získá řetězec z hlavičky http hosta přistupujícího na vaši stránku. Můžete jednoduše zkontrolovat ten svůj a najít další informace zde: http://www.useragentstring.com/

Podmínka, kterou jsme použili, nám říká něco jako „pokud řetězec neobsahuje 'NT 5'“, pak RewriteRule provede/použije pravidlo přesměrování [R] na https variantu vaší domény, NT 5 je řetězec verze OS pro zařízení s Windows XP .Pokud toto přesměrování nepoužijete, nekompatibilní uživatelé nebudou mít přístup k vašemu https webu.

Pokud toto přesměrování nepoužijete, nekompatibilní uživatelé nebudou mít přístup k vašemu https webu. Musím vás varovat, že toto řešení není 100% dokonalé jako některé

Musím vás varovat, že toto řešení není 100% dokonalé, protože někteří hosté vám nemusí poskytovat relevantní nebo skutečné informace. Pracoval jsem s AWstats, abych zjistil, jaká míra neznámých systémů přistupuje na mou stránku a je to asi 1,3%, takže docela málo požadavků. Pokud chcete pracovat s neznámými operačními systémy, abyste zajistili jejich kompatibilitu, můžete do podmínky přidat také neznámé (RewriteCond %{HTTP_USER_AGENT} !(NT\ 5|unknown) [NC]).

Awstats

Po úspěšném „nepřesměrování“ vašich nekompatibilních návštěvníků (udržení je v nezabezpečeném světě http) se můžete zaměřit na stranu https.

Konfigurace HTTPS

Nyní předpokládáme, že jste již certifikát přiřadili svému webovému serveru a také jej povolili.
Ve vašem konfiguračním souboru vhost znovu přidejte následující:

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA 
SSLProtocol All -SSLv2 -SSLv3
SSLCompression off
SSLHonorCipherOrder On

Zde použitý CipherSuite je o něco delší než obvykle. Je to kvůli lepší kompatibilitě. Svůj vlastní můžete získat na adrese: https://cipherli.st/ nebo https://mozilla.github.io/server-side-tls/ssl-config-generator/

Znovu musím zmínit, že nikdy nezískáte dokonalou konfiguraci splňující vysokou bezpečnostní politiku a také kompatibilitu. Měli byste najít kompromis.

Po použití těchto nastavení můžete otestovat konfiguraci a kompatibilitu serveru na: https://www.ssllabs.com/ssltest/index.html

Najdete zde dlouhý seznam kompatibilních a nekompatibilních zařízení a také několik dalších informací, které vás nasměrují na vaše vlastní „dokonalé“ řešení.


Linux
  1. Začínáme s Lets Encrypt SSL Certificates na Ubuntu

  2. Jak spravovat certifikáty Lets Encrypt SSL/TLS pomocí certbota

  3. Nainstalujte Let’s Encrypt SSL na HAProxy

  1. Začínáme s acme.sh Umožňuje šifrovat klienta SSL

  2. Zabezpečení ISPConfig 3.1 pomocí bezplatného šifrovacího certifikátu SSL

  3. Zabezpečte Apache2 pomocí Let's Encrypt SSL na Debianu 10/11

  1. Zabezpečte Nginx pomocí Lets Encrypt na Ubuntu 20.04

  2. Zabezpečte Apache pomocí Lets Encrypt na Ubuntu 20.04

  3. Zabezpečte Nginx pomocí Lets Encrypt na CentOS 7