Let’s Encrypt -jak používat a nastavit na Apache serveru

Kailo
Kailo
Dec 6, 2015 · 4 min read

Antonín Boušek

update: momentalne neaktualni


Let’s Encrypt před pár dny vstoupil do veřejné beta verze a napadlo mě, se pokusit sepsat jakýsi postup pro ostatní nadšence, kteří si tento ssl certifikát chtějí také vyzkoušet.
To řečeno, spoléhám na to, že kdo čte dále má zkušenosti s nastavováním apache serveru!

Co je vůbec “Let’s Encrypt”?

Dle jejich stránek :

Let’s Encrypt je automatizovaná certifikační autorita (CA), která je zdarma a snaží se být ve prospěch veřejnosti (huh)?

Tuto službu poskytuje Internet Security Research Group (ISRG) a projekt podporují společnosti jako je EFF, CISCO, Facebook, Mozilla, …


Využití tohoto certifikátu zdarma vypadá v praxi tak, že si přes git stáhnete jejich klienta “letsencrypt”.
To má ale jeden háček a to ten, že musíte použít jejich program, abyste mohli dostat certifikát.
To není přece nic špatného, ale defaultní instrukce spoléhají na to, že program poběží na serveru pod rootem, aby mohl editovat apace/nginx konfigurační soubory.

Nesnažím se být teď přehnaně paranoidní, nedej bože tu tvrdit něco o NSA, ale jen z bezpečnostního hlediska nechci, aby takový program měl možnost editovat moje nastavení serveru a mohl přistupovat k mým privátním klíčům.
Samozřejmě si moc vážím práce vývojářů za tímto projektem a není to nic proti nim.

Dejte mi jen prosím ssl klíč zadarmo, víc nechci.


Požadavky

  • openssl
  • python (volitelné)
  • znalost apache

Ještě než začneme

Otevřete si — https://gethttpsforfree.com/
Tato stránka generuje jednotlivé příkazy, které pak pustíte v terminálu. Tyto příkazy vydají žádost přes Let’s Encrypt ACME API k vygenerování vašeho certifikátu.

Pokud vám jde o bezpečnost, tak celá celá stránka je statická a funguje pouze přes ajax request k připojení Let’s Encrypt API. Nezaznamenává žádnou aktivitu.
To znamená, že si můžete stránku klidně lokálně uložit přes “Save Page As…” ve vašem prohlížeči.
Kdyby jste měli i přes to pochybnosti, tak si můžete projít zdrojové kódy — https://github.com/diafygi/gethttpsforfree

Začínáme

Prvně si potřebujete vygenerovat uživatelské klíče, která pak poskytnete
Let’s Encrypt.
Klíč, ten veřejný, používáte k bezpečnému obnovování/rušení certifikátu, či jiném problému.
Privátní klíč držte v tajnosti a NIKDY nikomu nedávejte!

Vygenerujeme klíče:

První a druhý krok

PUBLIC klíč zkopírujete do prvního pole “Account Public Key”. Ještě před tím vyplňte email, který slouží pro případnou komunikaci v problému.
Validujte data.

Vygenerujeme doménový klíč a CSR (certificate signing request) klíč.
CSR klíč obsahuje informace o doméně a public klíč vašeho TLS privátního klíče.
Privátní klíč držte v tajnosti a NIKDY nikomu nedávejte!

Pokud už máte doménový klíč a CSR vygenerované z dřívějška, můžete tento krok přeskočit.

Nahraďte “example.com” doménou, pro kterou generujete klíč.

Obsah domain.csr vložte do druhého pole a validujte.


Třetí krok

Spustíte příkazy a hodnoty, které se zobrazí vložíte do jednotlivých polí, poté validujte.

nezapomeňte změnit =./account.key na název vašeho user klíče

Čtvrtý krok

Nyní se ověří vlastnictví vaší domény. První část je stejná, jako v předchozím kroku. V druhé části si vyberte možnost, jak chcete ověřit vlastnictví se servery Let’s Encrypt.

Pro pohodlí volím python variantu.
Aby nevznikl konflikt na 80 portu, musím vypnout apache server během této operace.

Copy & Paste python script a spustíme ho. Validujte a pokud vše funguje dostanete informaci, že je doména ověřena.

Znovu spusťte Apache

Pátý krok

Zkopírujte Signed Certificate -Váš podepsaný certifikát od Let’s Ecnrypt a uložte signed.crt ve svojí home directory -odtud na něj budeme posléze odkazovat v apache config.
Intermediate Certificate můžete jednoduše stáhnout :

Instalace certifikátů na Apache

Ověřte si, že máte všechny certifikáty, které potřebujeme ke konfiguraci Apache, ve své domovské directory

  • domain.key
  • signed.crt
  • lets-encrypt-x1-cross-signed.pem

Nastavení Apache config

Otevřete soubor

A vložte následující:

Nezapomeňte změnit údaje

Pokud používáte Apache verzi 2.4.8 a níž, musíte přidat tento řádek:

Nezapomeňte přesměrovat všechen traffic z HTTP na HTTPS a to tak, že přidáte toto do VirtualHost *:80

Nyní stačí aktivovat SSL modul

a restartovat Apache

Final

Hotovo, teď byste měli mít funkční HTTPS na své doméně, stejně jako já.

Vše si ověřte na https://www.ssllabs.com/ssltest

Za zvážení ještě stojí si nastavit DHE Parametr pro silnější 4096-bitový klíč.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade