abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:22 | IT novinky

    Eric Lengyel dobrovolně uvolnil jako volné dílo svůj patentovaný algoritmus Slug. Algoritmus vykresluje text a vektorovou grafiku na GPU přímo z dat Bézierových křivek, aniž by využíval texturové mapy obsahující jakékoli předem vypočítané nebo uložené obrázky a počítá přesné pokrytí pro ostré a škálovatelné zobrazení písma, referenční ukázka implementace v HLSL shaderech je na GitHubu. Slug je volným dílem od 17. března letošního

    … více »
    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 15:11 | Zajímavý projekt

    Sashiko (GitHub) je open source automatizovaný systém pro revizi kódu linuxového jádra. Monitoruje veřejné mailing listy a hodnotí navrhované změny pomocí umělé inteligence. Výpočetní zdroje a LLM tokeny poskytuje Google.

    Ladislav Hagara | Komentářů: 1
    dnes 04:44 | Zajímavý software

    Cambalache, tj. RAD (rapid application development) nástroj pro GTK 4 a GTK 3, dospěl po pěti letech vývoje do verze 1.0. Instalovat jej lze i z Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 14:55 | Nová verze

    KiCad (Wikipedie), sada svobodných softwarových nástrojů pro počítačový návrh elektronických zařízení (EDA), byl vydán v nové major verzi 10.0.0 (𝕏). Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | IT novinky

    Letošní Turingovou cenu (2025 ACM A.M. Turing Award, Nobelova cena informatiky) získali Charles H. Bennett a Gilles Brassard za základní přínosy do oboru kvantové informatiky, které převrátily pojetí bezpečné neprolomitelné komunikace a výpočetní techniky. Jejich protokol BB84 z roku 1984 umožnil fyzikálně zaručený bezpečný přenos šifrovacích klíčů, zatímco jejich práce o kvantové teleportaci položila teoretické základy pro budoucí kvantový internet. Jejich práce spojila fyziku s informatikou a ovlivnila celou generaci vědců.

    Ladislav Hagara | Komentářů: 6
    včera 04:44 | Zajímavý článek

    Firefox 149 dostupný od 24. března přinese bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně (s CZ a SK se zatím nepočítá) a zobrazení dvou webových stránek vedle sebe v jednom panelu (split view). Firefox Labs 149 umožní přidat poznámky k panelům (tab notes, videoukázka).

    Ladislav Hagara | Komentářů: 2
    včera 00:33 | Nová verze

    Byla vydána nová stabilní verze 7.9 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 146. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | Zajímavý software

    Dle plánu byla vydána Opera GX pro Linux. Ke stažení je .deb i .rpm. V plánu je flatpak. Opera GX je webový prohlížeč zaměřený na hráče počítačových her.

    Ladislav Hagara | Komentářů: 7
    19.3. 19:22 | Nová verze

    GNUnet (Wikipedie) byl vydán v nové major verzi 0.27.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.

    Ladislav Hagara | Komentářů: 0
    19.3. 04:00 | Bezpečnostní upozornění

    Byly publikovány informace (technické detaily) o bezpečnostním problému Snapu. Jedná se o CVE-2026-3888. Neprivilegovaný lokální uživatel může s využitím snap-confine a systemd-tmpfiles získat práva roota.

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (29%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1121 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Let's encrypt za 10 minut pro hotentoty

    6.1.2016 00:30 | Přečteno: 7000× | Enterprise stories | Výběrový blog | poslední úprava: 6.1.2016 09:07

    Toto je postup, jak zprovoznit https s certifikátem od Let's encrypt během deseti minut (pokud vám nevadí spouštět klienta pod právy roota a shodit na chvilku web server).

    Jak to funguje? Certifikační autorita Let's encrypt musí ověřit, že daný web vlastníte. Podle mého chápání ověřuje oprávněnost dotazu tak, že pošle klientovi nějaké tajmeství a klient jej vystaví na tom daném webu (na nějaké smluvené adrese) a tím prokáže, že daný web opravdu ovládá. V normálním případě tvoří pro Let's encrypt klienta největší překážku v cestě právě web server, který běží na dané IP adrese. Klient zná různé metody, jak využít k nasdílení tajemství běžící webserver (umí několik webserverů a zná jejich konfigurace), ale stejně je tento způsob nespolehlivý. Například mně vypršel certifikát od StartSSL a nešifrované HTTP neprovozuji, stejnou paseku může způsobit například mod_rewrite apod.

    Jako nejjednodušší a nejblbuvzdornější metoda, jak to celé vyřešit, mi přišlo prostě shodit na chvilku apache a nechat klienta spustit si vlastní server (to je jedna z cest, jak může klient tajmeství na chvilku vystavit), počkat na doručení klíčů a pak zase nahodit apache. Pro výměnu SSL klíče je potřeba apache shodit tak jako tak (opravdu, drží si jej v paměti, změna souboru nestačí), takže těch pár sekund navíc nikoho nezabije. Má to nejméně parametrů a nejméně věcí se může pokazit.

    Teď postup, jak na to. Nejdřív stáhneme klienta.

    git clone https://github.com/letsencrypt/letsencrypt
    cd letsencrypt
    

    Pak to normálně pod rootem spustíme, srabíci si mohou vytvořit vlastního uživatele. Skript si nainstaluje pár balíků, nic hrozného se u mě nedělo. Po samotném spuštění se může objevit menu a člověk se může možná prakticky "proklikat" až k výsledku, mě ale následující krok skončil na tom, že letsencrypt nerozumí konfiguraci mého apache. První spuštění provedeme pomocí tohoto:

    ./letsencrypt-auto
    

    Pokud to aspoň stáhne balíky, je to OK. Pro vytvoření samotného certifikátu potřebujeme (jak jsem vysvětlil dříve) shodit apache.

    service apache2 stop
    

    ...a jdeme na to:

    ./letsencrypt-auto certonly --standalone --email muj@email.cz -d muj.server.cz
    

    Co to znamená? certonly je, že chci jenom certifikáty (o úpravy konfigurace si neprosím), --standalone znamená "použij pro nasdílení tajemství vlastní webserver", email je povinný pro Let's encrypt autoritu a pak už je jenom suše jméno serveru pro certifikát.

    Co se stane? Klient požádá o certifikát, dostane tajemství, to vystaví, certifikační autorita porovná své tajemství s vystaveným, potvrdí si tím pravost serveru, vystaví certifikáty, pošle je klientovi, ten je uloží do /etc/letsencrypt/live/muj.server.cz - a to vše neinteraktivně. Pokud chci takto vystavený certifikát používat, zavedu si do apache něco jako:

    <VirtualHost *:443>
            SSLEngine on
            SSLProtocol all -SSLv2 -SSLv3
            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: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:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
            SSLHonorCipherOrder on
    
            SSLCertificateFile /etc/letsencrypt/live/muj.server.cz/cert.pem
            SSLCertificateKeyFile /etc/letsencrypt/live/muj.server.cz/privkey.pem
            SSLCertificateChainFile /etc/letsencrypt/live/muj.server.cz/chain.pem
    
            ServerName muj.server.cz
            ...
    </VirtualHost>
    

    ...a pak spustit apache. Let's encrypt vytváří certifikáty jenom na tři měsíce, takže bychom je měli nějak pravidelně obnovovat. Pro to si můžeme vytvořit skript například takovýto:

    #!/bin/sh
    /etc/init.d/apache2 stop
    cd /root/letsencrypt
    ./letsencrypt-auto certonly \
        --renew-by-default --standalone \
        --email muj@email.cz \
        -d muj.server.cz
    /etc/init.d/apache2 start
    

    Jak už jsem psal výše, restart apache je stejně nutný, takže to je vlastně celé OK. Toto uložíme pod názvem "autoupdate" a dáme to do cronu (pro roota) třeba takto:

    10 4 8 */2 * /root/letsencrypt/autoupdate
    

    ...a je vystaráno. Pokud se něco rozbije, prostě si to člověk spustí ručně.

    Disclaimer: Spouštět pod právy roota soubory stažené z internetu není obecně moc dobrý nápad, jak to celé udělat bezpečně(ji) je ponecháno jako cvičení čtenáři.

           

    Hodnocení: 64 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Josef Kufner avatar 6.1.2016 02:03 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    apt-get install letsencrypt
    A není potřeba shazovat server. Ještě jednodušší je nastavit, aby /.well-known na všech virtualhostech šlo do adresáře .well-known v defaultním webroot webserveru a na tento webroot pak poslat letsencrypt. Nevyžaduje to žádnou interakci s webserverem a můžeš to spouštět z cronu co pár týdnů. Letsencrypt si tam vytvoří soubor v podadresáři acme-challenge, server autority to zkontroluje a je hotovo.
    Hello world ! Segmentation fault (core dumped)
    6.1.2016 02:04 Boris Dušek | skóre: 22 | blog: everything
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    +1
    vim ~/.emacs
    xvasek avatar 6.1.2016 08:59 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    Já jsem to taky takto původně rozjel (po prvním získání certifikátu se --standalone), ale pak mi došlo, že pokud nastane problém a neobnoví se mi certifikáty, tak jsem v háji, protože http mám jenom permanent redirect na https a https v té chvíli nebude natolik funkční, aby mi dovolilo obnovit certifikáty. Při prošlém certifikátu od StartSSL opravdu Let's encrypt nefunguje - toto je ověřeno, je to tak dobře a je to vlastně důvod sepsání tohoto blogu. A pokud nebudou fungovat certifikáty, tak chci mít v té chvíli nějaké připravené řešení, jak si je ručně obnovit. Samozřejmě si můžu paralelně připravit script se --standalone, ale proč to dělat složitě, když to jde jednoduše.

    To apt-get install letsencrypt samozřejmě beru jako lepší řešení než git, pokud je to ovšem v distribuci, u mě není.
    menphis avatar 6.1.2016 22:14 menphis | skóre: 22 | blog: menphis_blog
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    -1. Dnes jsem generoval certifikat na webu s propadlym StartSSL certfikatem a generovani proslo, tak chyba bude asi nekde jinde ( Napr. konfigurace apache neumozni pristup do slozky /.well-known )

    Spoustet skript na obnovu certifatu by jsi mel casteji nez jednou za dva mesice, protoze se muze stat, ze se z nejakeho duvodu nepodari certifikat vygenerovat a propadne ti. Na tohle varuje i dokumentace LE. Navic je mozne, ze LE bude v budoucnu vydavat certifikaty jeste s kratsi platnosti. Promin, ale tvuj blog muze nekomu zpusobit vic skody nez uzitku.

    xvasek avatar 7.1.2016 10:10 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    A obnovoval jsi certifikát opravdu přes https s propadlým certifikátem, nebo přes paralelně běžící http?

    ...ale vždyť je to vlastně jedno. Tak mi jednou za dva měsíce ve čtyři v noci neběží asi deset sekund apache. Ty to vidíš jako problém, já ne, umím s tím žít.

    Info o (ne)obnovení certifikátu ti přijde tak jako tak mailem z cronu, takže máš měsíc na to, abys v případě neúspechu podniknul nějakou akci.

    Prakticky každá věc se dá udělat složitějším a o něco lepším způsobem. Místo /etc/passwd můžu mít LDAP server, místo PSK můžu použít RADIUS, místo ext4 můžu mít ZFS, místo shození web serveru na deset sekund při výměně certifikátu můžu změnit konfiguraci a udělat výjimu z redirectů a rewrite a server jenom reloadnout, místo spoléhání na info mail z cronu můžu udělat sofistikovaný systém, který najde certifikáty končící za X dní, pokusí se je obnovit a pokud se mu to Ykrát nepovede, začne řešit situaci eskalací na předem definovaný seznam e-mailů a založí ticket na jira / redmine... Když budu mít https serverů 50, určitě investuji hodinu a takové řešení najdu nebo vytvořím.

    I přesto si ale myslím, že návody jak dělat věci nejjednodušším možným způsobem mají pořád smysl, já osobně hledám napřed takovéto.

    (Stejně nakonec vznikne v rámci systemd nějaký letsencryptd, který poběží prostě pořád a bude si certifikáty i webservery hlídat v reálním čase. :-) )
    7.1.2016 11:03 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    +1
    Baník pyčo!
    Nuphar avatar 6.1.2016 17:45 Nuphar | skóre: 19
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    Koukám, že to je i pro openSUSE, https://software.opensuse.org/package/letsencrypt Asi to budu muset někdy vyzkoušet. :-)
    Per aspera, Asparagus et Aspergillus ad a/Astra!
    6.1.2016 02:03 Boris Dušek | skóre: 22 | blog: everything
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    Pro výměnu SSL klíče je potřeba apache shodit tak jako tak (opravdu, drží si jej v paměti, změna souboru nestačí)
    mě vždy stačil "reload", tedy service apache2 reload (na apache 2.2.22).

    Ještě nepamatuju si, jestli to po mě chtělo i při druhém a dalším spuštění, ale při prvním určitě a proto používám argument --agree-tos na souhlas s podmínkami služby, aby se to neptalo.

    Taky je možné použít skript letsencrypt-renewer, který projede všechny získané certifikáty a obnoví ty, které mají 30 dní do vypršení (použije identické argumenty, jako při prvním vystavení certifikátu, zaznamenává si je totiž do souboru).

    Nakonec je potřeba si dát pozor, že v současné době je na jednu registrovanou doménu možné registrovat maximálně 5 certifikátů za posledních 7 dní (i když tyto limity mají kvůli rozjezdu a budou je postupně zvedat). Registrovaná doména je to, co si člověk registruje u registrátora (takže ne její subdomény), a do limitu pro jednu registrovanou doménu se počítá jakýkoliv certifikát, kde je použita daná registrovaná doména (ať už přímo, nebo jako subdoména). Takže pozor při experimentování s obnovováním (aneb hádejte, co se mi před 2 týdny stalo :-)). Pro experimentování lze použít testovací server vydávající neplatné certifikáty, který ale nemá prakticky žádné limity jako ten uvedený výše (parametr --test-cert).
    vim ~/.emacs
    6.1.2016 02:09 Boris Dušek | skóre: 22 | blog: everything
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    Ještě doporučuju makro, které jsem si pro letsencrypt udělal (apt-get install libapache2-mod-macro; a2enmod macro, pokud je to Apache starší než 2.4):

    <Macro LetsEncrypt $host>

    SSLEngine On

    SSLCertificateFile /etc/letsencrypt/live/$host/cert.pem

    SSLCertificateKeyFile /etc/letsencrypt/live/$host/privkey.pem

    SSLCertificateChainFile /etc/letsencrypt/live/$host/chain.pem

    </Macro>

    Dá se to dát např. do /etc/apache2/letsencrypt.local.conf

    Pak už ve virtuálním hostu stačí jen: Use LetsEncrypt muj.server.cz
    vim ~/.emacs
    6.1.2016 02:11 Boris Dušek | skóre: 22 | blog: everything
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    /etc/apache2/letsencrypt.local.conf
    Vypadlo mi: /etc/apache2/conf.d/letsencrypt.local.conf
    vim ~/.emacs
    xvasek avatar 6.1.2016 09:02 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    Pěkné pěkné. Až jich tam budu mít kutu, tak to použiju.
    Heron avatar 6.1.2016 07:20 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    SSLProtocol all -SSLv2
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM

    SSLv3 a RC4 nebrat!

    Pokud chcete uspokojivé bezpečné nastavení pro většinu klientů, lze se řídit doporučením Mozilly: https://mozilla.github.io/server-side-tls/ssl-config-generator/

    xvasek avatar 6.1.2016 09:09 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    Díky, opraveno v blogu i na serveru. Cítím se hned bezpečněji. :-)
    Heron avatar 6.1.2016 09:54 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    Supr :-)
    6.1.2016 10:56 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    Nauc se pouzivat OCSP Stapling.
    Normalni autorita ve chvili vydani noveho certifikatu revokuje stary a nacachovany staple na web serveru umozni staremu certifikatu, aby se jeste tu chvilku, nez ho vymenis, tvaril jako platny.
    xvasek avatar 6.1.2016 11:13 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    Na to mám moc starou verzi apache. Samozřejmě beru, že existuje hodně metod, jak to celé vypiplat k mnohem větší dokonalosti a taky beru, že uvedený postup je blbý pro hodně zatížené weby. Toto je quick and dirty jednoduchá cesta pro server, kam chodí pár desítek / stovek lidí, prostě takové to domácí žvýkání.
    Josef Kufner avatar 7.1.2016 02:08 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    Pokud vím, LetsEncrypt staré certifikáty nerevokuje. Ono stejnak moc dlouho neplatí, tak je to jedno a jen by to překáželo.
    Hello world ! Segmentation fault (core dumped)
    limit_false avatar 9.1.2016 01:24 limit_false | skóre: 23 | blog: limit_false
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    LetEncrypt šlo cestou Revocation Doesn't Work, což si myslím, že je správné spolu s omezením platnosti certifikátu. OCSP ani Multi OCSP nebudou fungovat. Nikdo se ani nepokoušel RFC 6961 implementovat.

    Heh, si vzpomínám jak jsem před 10 lety na zkoušce divil vůbec, jak by revokace mohla prakticky spolehlivě fungovat :-)

    No nefunguje v žádném protokolu, TLS, PGP ani jiném.
    When people want prime order group, give them prime order group.
    9.1.2016 10:25 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    Ono to mozna bylo jedno az do Heartbleedu.
    6.1.2016 11:59 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    > Let's encrypt za 10 minut...

    Neco me to pripomina :-)


    Moe: The deep fryer's here. I got it used from the Navy. You could flash fry a buffalo in forty seconds.

    Homer: Forty seconds? But I want it now!
    7.1.2016 14:13 biolog
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    To chcete říct, že 10 minut je zanedbatelný množství času? Je to velké zlepšení, vskutku. Ale 10 minut strávit operací, která je v principu ekvivalentní zaškrtnutí checkboxu "Nabízet HTTPS jako všichni", je stále práce hodně.
    7.1.2016 15:00 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Let's encrypt za 10 minut pro hotentoty
    To chcete říct, že 10 minut je zanedbatelný množství času?
    nene, neni. Asi to bude znit blbe, ale ja v tomhle ohledu casto uvazuju stejne jako Homer :-)

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.