V tomto tutoriálu se naučíme, jak zabezpečit Apache HTTP server s TLS/SSL certifikáty nabízené Let’s Encrypt v FreeBSD 11.x . Probereme také, jak automatizovat proces obnovy certifikátu pro Lets’ Encrypt.
Přečtěte si také :Nainstalujte Let’s Encrypt for Nginx na FreeBSD
TLS/SSL certifikáty jsou používány webovým serverem Apache k šifrování komunikace mezi koncovými uzly nebo obvykleji mezi serverem a klientem za účelem zajištění bezpečnosti. Let’s Encrypt poskytuje certbot nástroj příkazového řádku, což je aplikace, která může usnadnit způsob, jakým můžete zdarma získat důvěryhodné certifikáty.
Požadavky:
- Instalace FreeBSD 11.x
- 10 věcí, které je třeba udělat po instalaci FreeBSD
- Jak nainstalovat Apache, MariaDB a PHP ve FreeBSD
Krok 1:Nakonfigurujte Apache SSL na FreeBSD
1. Před zahájením instalace nástroje certbot a vytvoření konfiguračního souboru TSL pro Apache , nejprve vytvořte dva odlišné adresáře s názvem sites-available a povoleno pro weby v kořenovém konfiguračním adresáři Apache vydáním níže uvedených příkazů.
Účelem těchto dvou adresářů je usnadnit správu konfigurace virtuálního hostingu v systému bez úpravy hlavního Apache httpd.conf konfigurační soubor pokaždé, když přidáme nového virtuálního hostitele.
# mkdir /usr/local/etc/apache24/sites-available# mkdir /usr/local/etc/apache24/sites-enabled
2. Po vytvoření obou adresářů otevřete Apache httpd.conf soubor pomocí textového editoru a přidejte následující řádek na konec souboru, jak je znázorněno níže.
# nano /usr/local/etc/apache24/httpd.conf
Přidejte následující řádek:
IncludeOptional etc/apache24/sites-enabled/*.conf
3. Dále povolte TLS modul pro Apache vytvořením následujícího nového souboru s názvem 020_mod_ssl.conf v modules.d adresář s následujícím obsahem.
# nano /usr/local/etc/apache24/modules.d/020_mod_ssl.conf
Přidejte následující řádky do souboru 020_mod_ssl.conf .
Poslouchejte 443SSLProtocol ALL -SSLv2 -SSLv3SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5SSLPassPhraseDialog builtininSSLSessionCacheTimeout 300
4. Nyní odkomentujte SSL modul z /usr/local/etc/apache24/httpd.conf soubor odstraněním hashtagu ze začátku následujícího řádku, jak je znázorněno níže:
LoadModule ssl_module libexec/apache24/mod_ssl.so
5. Dále vytvořte TLS konfigurační soubor pro vaši doménu v weby-dostupné adresář, nejlépe s názvem vaší domény, jak je uvedeno v níže uvedeném úryvku:
# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf
Přidejte následující konfiguraci virtuálního hostitele do souboru bsd.lan-ssl.conf .
ServerName www.yourdomain.com ServerAlias yourdomain.com DocumentRoot "/usr/local/www/apache24/data/" SSLEngine na SSLCertificateFile "/usr/local/etc/letsencrypt/live/www. yourdomain.com/cert.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem" SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/ fullchain.pem" SSLOptions +StdEnvVars SSLOptions +StdEnvVars BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/var/log/apache/httpd-ssl_request.log" \ "%t %h %{ SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" Možnosti Indexy FollowSymLinks MultiViews #AllowOverride řídí, jaké direktivy mohou být umístěny do souborů .htaccess. AllowOverride All #Controls, kdo může získat obsah z tohoto souboru serveru Vyžadovat udělení všech ErrorLog "/var/log/apache/yourdomain.ssl-error.log" CustomLog "/var/log/apache/yourdomain.ssl-access_log " kombinované
Ujistěte se, že jste nahradili proměnnou názvu domény z ServerName , Alias serveru , ErrorLog , CustomLog odpovídajícím způsobem.
Krok 2:Nainstalujte Lets’Encrypt na FreeBSD
6. V dalším kroku zadejte následující příkaz, abyste nainstalovali certbot nástroj poskytovaný Let’s Encrypt , který bude použit k získání Apache TSL bezplatné certifikáty pro vaši doménu.
Při instalaci certbota na obrazovce se zobrazí řada výzev. Ke konfiguraci certbota použijte níže uvedený snímek obrazovky užitečnost. Kompilace a instalace obslužného programu certbot může také nějakou dobu trvat, v závislosti na prostředcích vašeho počítače.
# cd /usr/ports/security/py-certbot# make install clean
7. Po dokončení procesu kompilace zadejte níže uvedený příkaz, abyste aktualizovali certbot nástroj a certbot požadované závislosti.
# pkg install py27-certbot# pkg install py27-acme
8. Chcete-li vygenerovat certifikát pro vaši doménu, zadejte příkaz, jak je znázorněno níže. Ujistěte se, že zadáváte správné umístění webroot, kde jsou v systému souborů uloženy soubory vašeho webu (DocumentRoot z konfiguračního souboru domény) pomocí -w
vlajka. Pokud máte více subdomén, přidejte je všechny pomocí -d
vlajka.
# certbot certonly --webroot -w /usr/local/www/apache24/data/ -d yourdomain.com -d www.yourdomain.com
Při získávání certifikátu zadejte e-mailovou adresu pro obnovení certifikátu, stisknutím a potvrďte souhlas s podmínkami Let's Encrypt a n
abyste nesdíleli e-mailovou adresu partnerů Let’s Encrypt.
Ukládání protokolu ladění do /var/log/letsencrypt/letsencrypt.logZadejte e-mailovou adresu (používá se pro naléhavá upozornění na obnovení a zabezpečení) (Zadejte „c“ pro zrušení):[email protected]Zdá se, že s tím jsou problémy adresa. Zadejte e-mailovou adresu (používá se upozornění na naléhavou obnovu a zabezpečení) Pokud to opravdu chcete přeskočit, můžete klienta spustit pomocí --register-unsafely-without-email, ale ujistěte se, že jste si poté zálohovali klíč svého účtu z /etc/letsencrypt/accounts (Zadejte 'c' pro zrušení):[e-mail chráněný]--------------------------------------- ---------------------------------------- Přečtěte si prosím Podmínky služby na https:// letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. Musíte souhlasit, abyste se mohli zaregistrovat na serveru ACME na adrese https://acme-v01.api.letsencrypt.org/directory------------------------- -------------------------------------------------- ----(A)souhlasit/(C)zrušit:a
-------------------------------------------------- ----------------------------- Byli byste ochotni sdílet svou e-mailovou adresu s Electronic Frontier Foundation, zakládajícím partnerem Let's Šifrovat projekt a nezisková organizace, která vyvíjí Certbot? Rádi bychom vám zaslali e-mail o EFF a naší práci na šifrování webu, ochraně jeho uživatelů a ochraně digitálních práv. -------------------------------------------------- ----------------------------- (Ano) ano/(N) ne:n
Získání nového certifikátu Provedení následujících výzev:http-01 výzva pro www.domain.com Použití cesty webroot /usr/local/www/apache24/data pro všechny neshodné domény. Čekání na ověření... Čištění výzev DŮLEŽITÉ POZNÁMKY:- Gratulujeme! Váš certifikát a řetězec byly uloženy na /usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem. Platnost vašeho certifikátu vyprší 2017-11-15. Chcete-li v budoucnu získat novou nebo vylepšenou verzi tohoto certifikátu, jednoduše znovu spusťte certbot. Chcete-li neinteraktivně obnovit *všechny* své certifikáty, spusťte „certbot renew“ – přihlašovací údaje k vašemu účtu byly uloženy v konfiguračním adresáři Certbot na /usr/local/etc/letsencrypt. Nyní byste měli provést bezpečnou zálohu této složky. Tento konfigurační adresář bude také obsahovat certifikáty a soukromé klíče získané Certbotem, takže pravidelné zálohování této složky je ideální. - Pokud se vám líbí Certbot, zvažte prosím podporu naší práce:Darováním pro ISRG / Let's Encrypt:https://letsencrypt.org/donate Darováním pro EFF:https://eff.org/donate-le
9. Poté, co získáte certifikáty pro svou doménu, můžete spustit příkaz ls a vypsat všechny součásti certifikátu (řetěz, soukromý klíč, certifikát), jak je uvedeno v níže uvedeném příkladu.
# ls -al /usr/local/etc/letsencrypt/live/www.yourdomain.com/
Krok 3:Aktualizujte certifikáty Apache TLS na FreeBSD
10. Chcete-li na svůj web přidat certifikáty Let’s Encrypt, otevřete konfigurační soubor Apache pro vaši doménu a aktualizujte následující řádky, aby odrážely cestu k vydaným certifikátům.
# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf
Přidejte tyto řádky certifikátu TLS:
SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem" SSLCertificateChain "/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem"
11. Nakonec povolte konfigurační soubor TLS vytvořením symbolického odkazu pro konfigurační soubor TLS vaší domény na s povolenými weby adresář, zkontrolujte konfigurace Apache na možné chyby syntaxe a pokud je syntaxe v pořádku, restartujte démona Apache zadáním níže uvedených příkazů.
# ln -sf /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf /usr/local/etc/apache24/sites-enabled/# apachectl -t# restart služby apache2412. Chcete-li zkontrolovat, zda služba Apache naslouchá na HTTPS port 443 , zadejte následující příkaz pro výpis síťových soketů httpd.
# sockstat -4 | grep httpd13. Na adresu své domény můžete přejít z prohlížeče prostřednictvím protokolu HTTPS, abyste si ověřili, že certifikáty Let’s Encrypt byly úspěšně použity.
https://www.yourdomain.com14. Chcete-li získat další informace o vydaném certifikátu Let’s Encrypt z příkazového řádku, použijte openssl příkaz takto.
# openssl s_client -connect www.yourdomain.com:44315. Můžete také ověřit, zda je provoz šifrován pomocí platného certifikátu poskytnutého Let’s Encrypt CA z mobilního zařízení, jak je znázorněno na níže uvedeném snímku mobilní obrazovky.
To je vše! Klienti nyní mohou bezpečně navštěvovat váš web, protože provoz, který proudí mezi serverem a prohlížečem klienta, je šifrován. Pro složitější úlohy týkající se utility certbot navštivte následující odkaz:https://certbot.eff.org/
23 Užitečné příklady příkazů PKG pro správu balíčků ve FreeBSD Jak nainstalovat Nginx, MariaDB a PHP (FEMP) Stack na FreeBSDFreeBSD