FlexiBee a Let's Encrypt SSL certifikát

Pokud používáte cloudové FlexiBee, nemusíte SSL certifikáty řešit. Pokud ho ale máte nainstalované na svém vlastním serveru, je dobré vybavit ho bezpečnějším SSL certifkátem.

Výchozí certifikát FlexiBee

Ve výchozím stavu je k zabezpečení komunikace využíván self-signed certifikát. O něm ale již dnes většina prohlížečů prohlašuje, že není bezpečný. Musíte tedy potvrdit „bezpečnostní výjimku“, abyste mohli přistoupit k webovému rozhraní nebo REST API.

Schválit bezpečnostní výjimku
Schválit bezpečnostní výjimku

Detail self-signed certifikátu FlexiBee
Detail self-signed certifikátu FlexiBee


Instalace vlastního certifikátu

Jak tedy tento stav napravit a zabezpečit komunikaci s FlexiBee? Je potřeba na server nahrát vlastní certifikát. Postup jak certifikát vyměnit je popsaný v dokumentaci na stránkách FlexiBee. Pokud máte správný certifikát, obsahující všechno potřebné, stačí zavolat:

curl -X PUT -u jmeno:heslo -k -L -T domena.eu.pem https://localhost:5434/certificate
Většina certifikátů je ale placená. A nestojí zrovna malý peníz :-). Existuje ovšem certifikační autorita Let's Encrypt, která poskytuje SSL certifikáty zdarma.

Le logo wide

Let's Encrypt certifikát

Certifikát není možné rovnou nahrát do FlexiBee. Není totiž ve správném tvaru a neobsahuje celý řetězec certifikátů. Je tedy nutné si nejdříve certifikát připravit.

Certifikáty se nacházejí v adresáři /etc/letsencrypt/live/nazevserveru/. Nazevserveru je proměnná, pod kterou Let's Encrypt ceritifikát vytvořil. Většinou se jedná o název serveru (např. charlieblog.eu). Jediný certifikát, který se v adresáři nenachází, je DST Root CA X3. Tento certifikát si budeme muset stáhnout z internetu.

Pro práci nejspíš budeme potřebovat root oprávnění, protože do adresáře letsencrypt nemá přístup jen tak někdo.

Přejdeme tedy do tohoto adresáře a můžeme začít.

# staneme se rootem
sudo su
# přesuneme se do správného adresáře
cd /etc/letsencrypt/live/nazevserveru/
# převedeme klíč do formátu PKCS#1
openssl rsa -in privkey.pem -out rsaprivkey.pem
# z internetu stáhneme certifikát DST Root CA X3
curl https://ssl-tools.net/certificates/dac9024f54d8f6df94935fb1732638ca6ad77c13.pem > root-ca.pem
# zkombinujeme všechny certifikáty a vytvoříme finální flexibee-le.pem
cat root-ca.pem fullchain.pem rsaprivkey.pem > flexibee-le.pem

Hotovo.

Teď už můžeme certifikát nahrát pomocí příkazu

curl -X PUT -u jmeno:heslo -k -L -T flexibee-le.pem https://localhost:5434/certificate
Jméno a heslo je nutné nahradit reálným uživatelským jménem a heslem :-).

Závěr

Kájovo tip
Vytvořte si .sh script a proces zautomatizujte cronem.

Čas jsou peníze ;-).

Konečně máme ve FlexiBee certifikát, který funguje, je zdarma a zabezpečí nám komunikaci.

Služby jako Integromat už nebudou mít s certifikátem problém. Při připojování k FlexiBee API z PHP již nebudeme muset nastavovat CURLOPT_SSL_VERIFYPEER a CURLOPT_SSL_VERIFYHOST na False.

Pokud chcete proces nasazení Let's Encrypt certifikátu zautomatizovat, koukněte se na ukázkový script, který jsem připravil. Naleznete ho v GitLab repozitáři. ;-)

Díky Igimu Hákovi :-).

Zdroje a odkazy

Zdroj certifikátu DST Root CA X3

ABRA FlexiBee, Lets Encrypt, SSL, Certifikát

- (17. 6. 2018)

Líbil se vám článek?

Nasdílejte ho svým přátelům na sociálních sítích.

Google+

Názory, připomínky a jiné komentáře

self-signed certifikáty jsou stejně bezpečné jako LE, akorát je "otrava" řešit tu nedůvěryhodnost a uživatelské nastavení.
Není pravda, že jsou důvěryhodné komerční certifikáty drahé. Comodo PositiveSSL certifikát koupíte na dva roky za 349 Kč a máte vystaráno.
Nevím jak je ve FBee vyřešena aktualizace LE certifikátu, ale pokud to budete dělat 9x za ty dva roky (pouze platnost 3 měsíce) podle postupu výše, tak Vás ten LE vyjde X-krát dráž :)

Díky za připomínky. S bezpečností a cenou máte pravdu.

Proč by mě ale aktualizace měla vyjít x-krát dráž? Script spouštěný cronem?

Pokud máte na svém vlastním serveru LE plně automatizován, tak to dráž nevyjde. Stále se však domnívám, že poměr práce, nastavování a kontroly funkčnosti LE certifikátu vyjde dráž než nákup jednoho komerčního DV na dva roky.
U adminů a technicky zdatných lidí ale chápu, že pro nasazení LE se cena takto nepočítá.

Ano, na serveru mám Let's Encrypt plně zautomatizován a proto je pro mě jasné řešení ho mít i ve FlexiBee (automagicky :-).

Můj jeden certifikát navíc pokrývá více různých domén (reálně asi 3 různé) a tam předpokládám, že by už cena byla vyšší.

A pokud se nepletu, tak Let's Encrypt už umí i Wildcard (hvězdičkové) ceritifikáty. Ještě jsem neměl čas vyzkoušet, ale na webu to píšou. Pak je tuším cena komerčních už úplně někde jinde.

Pokud se ale pletu tak budu rád, když mě někdo opraví :-D

Pokud někdo, kdo dělá certifikáty napíše "self-signed certifikáty jsou stejně bezpečné jako LE". Tak tomu buď vůbec nerozumí nebo prodává strach.

LetsEncrypt je stejně bezpečný jako Comodo PositiveSSL. Letsencrypt díky svému API umožnil, že všechny aplikace mohou mít v sobě automatickou žádost o certifikát včetně ověření. To je bezpečnostní posun, který je důležitý.

V podstatě dnes má smysl nakupovat pouze "Extended Validation Certificate". Všechny ostatní certifikáty jsou si rovny a uživatele vůbec nezajímají. Je to zelené, je. A už vůbec se nevyznají, jaký je rozdíl mezi Comodo nebo StartSSL.

Jojo, pokud to máte na serveru plně automatizované, pak je LE ideální. WildCardy už umí, ale to je asi zbytečné řešit u pár domén.

To: Petr Ferschmann
Asi by bylo dobré si znovu přečíst co jsem napsal nebo se nechám rád poučit, jaký je rozdíl pro zajištění HTTPS komunikace mezi certifikáty sef-LE-komerčními a jak se prodává strach, možná to zvedne tržby :)

Jinak souhlas s tím, že pokud mohu nasadit LE, tak je to v pořádku. Já jen říkám, že hosting nepodporuje LE, musíte jej buď změnit nebo koupit komerční DV. Je plno serverů, včetně firemních, kde komerční SSL za pár korun je vhodnější než LE a to hlavně z důvodu technického řešení.

Petr K.: i kdyby ten certifikát někdo aktualizoval ručně tak vás to minimálně vyjde šul nul. Ten postup je maxmálně na 5 minut práce a pokud to musíte udělat 9x za dva roky tak to jednomu člověku zabere tedy celkem 45 minut. Snad si už pak dovedete spočítat kolik to tedy celkem vyjde. Nehledě k faktu že LE certy jsou od počátku vymyslěný tak aby je aktualizoval automat.

Navíc certifikát si asi nebude nasazovat laik, ale musí to tak či onak udělat někdo technicky zdatný.

Let's Encrypt certifikáty mám rád. Nejsem žádný expert na bezpečnost, ale práce s nimi je velmi jednoduchá. Nasazení jsem zvládnul za pár minut, obnova už běží cronem.

Do vlastních instalací FlexiBee je to podle mě jasná volba. Nasazení a aktualizace je práce pro cron. Já se s tím již nebudu zatěžovat.

Jak jsem psal již dřív, cena u jednoho certifikátu může být "srovnatelná", ale jakmile chci mít certifikátů víc, nebo dokonce "hvězdičkových", tak už moc srovnatelná není.

Let's Encrypt je také bezpečnější než self-signed. A hlavně odpadne to otravné přesvědčování všech možných i nemožných aplikací aby s ním komunikovala. Když i Javě po nahrání kompletního chainu nedělá problém :-D.

Vložit nový komentář
Karel Norský

Jsem programátor, horolezec a tak trochu FlexiBee fanatik :-).
Na CharlieBlogu sepisuji své nápady a poznatky už od roku 2006.

Powered by CharlieBlog Engine v2.0