Hlavní navigace

Apache přidává podporu Let's Encrypt, pro HTTPS stačí jeden řádek konfigurace

Petr Krčmář

Mozilla financovala vývoj modulu pro webový server Apache, který se tak brzy naučí přímo podporovat certifikáty od Let's Encrypt. Abyste své weby zpřístupnili po HTTPS, stačí přidat jednu konfigurační volbu.

Web server Apache získává přímou podporu protokolu ACME a umí tak sám získat a použít certifikáty od Let's Encrypt pro spravované domény. Pokud tedy používáte Apache, už nebudete muset využít služeb externích klientů (jako ACME.sh nebo Dehydrated), protože si web server vše obstará sám: spojí se s autoritou, vygeneruje klíče, vyžádá si vystavení certifikátu, provede ověření a nakonec zapne HTTPS.

Ještě jednodušší HTTPS

Bude se tak vlastně chovat podobně, jako se chová web server Caddy – bude mít také Let's Encrypt v základní výbavě. Pro uživatele by tak mělo být nasazení ještě jednodušší, prostě bude stačit jednou konfigurační volbou web serveru říci, že se má o všechno postarat. Vše pak proběhne zcela automaticky bez dalšího zásahu.

Nejlépe vše objasní příklad. Konfigurace vašeho webu teď může vypadat třeba takto:

<VirtualHost *:443>
    ServerName www.example.com
    ServerAlias example.com
    Protocols h2 http/1.1

    SSLEngine on
    SSLCertificateFile /etc/mycerts/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/mycerts/example.com/privkey.pem
    ...
</VirtualHost>

Nově se nastavení zjednoduší, zmizí cesty k certifikátům ( SSLCertificate*) a naopak přibude kouzelná volba ManagedDomains, za kterou vyjmenujete všechny domény, pro které má Apache nechat vygenerovat certifikát.

ManagedDomain example.com www.example.com

<VirtualHost *:443>
    ServerName www.example.com
    ServerAlias example.com
    Protocols h2 http/1.1

    SSLEngine on
    ...
</VirtualHost>

To je vše, po znovu načtení konfigurace se web server sám postará o vše ostatní. Důležité je, že se už nemusíte starat o konfigurační volby k mod_ssl, protože informace o cestě k certifikátům a klíčům mu předá modul starající se o protokol ACME.

Pokud nechcete ručně potvrzovat souhlas s podmínkami Let's Encrypt, je dobré přidat ještě do konfigurace patřičnou volbu. Zároveň autorita vyžaduje uvedení e-mailové adresy, na kterou vám bude posílat informace o vašich certifikátech. Vše je možné vyřešit dvěma řádky v konfiguraci:

MDCertificateAgreement https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf
ServerAdmin admin@example.com

Modul má řadu dalších parametrů, které ovlivňují jeho chování. Je možné například změnit, kdy se budou certifikáty obnovovat, zda se má po vytvoření nového certifikátu spustit nějaký příkaz či jaké klíče chcete používat.

Modul mod_md platila Mozilla

Tvorbu modulu mod_md, který podporu ACME do Apache přidává, financovala organizace Mozilla. Ta na jeho vývoj přispěla částkou 70 000 dolarů. V současné době je modul ve vývojové větvi web serveru Apache a plánuje se jeho backport do stabilní řady 2.4. Kód najdete také na GitHubu, kde je k dispozici i kompletní dokumentace.

V současné době je kód otestován jen na Linuxu a macOS, vývojáři budou rádi za testování na dalších platformách. Součástí funkcionality je také patch pro mod_ssl, který musí s mod_md  správně spolupracovat. Pokud se chcete pustit do testování, můžete sáhnout po PPA pro Ubuntu, které spravuje Ondřej Surý. Součástí těchto balíčků jsou i všechny potřebné patche.

Ukázku praktického použití naleznete v následujícím videu:

Našli jste v článku chybu?