GNU/Linux >> Znalost Linux >  >> Cent OS

Zabezpečený Apache pomocí Let's Encrypt na CentOS 7 – proces krok za krokem?

Certifikáty SSL se používají k zajištění dodatečného zabezpečení pro uživatele přistupující k vaší aplikaci. Bude šifrovat provoz mezi serverem a klientem. Let's Encrypt je certifikační autorita (CA). Poskytuje bezplatné certifikáty TLS/SSL pro umožnění šifrovaného HTTPS na webových serverech. Je to automatizovaná, bezplatná a otevřená certifikační autorita.

Zde v LinuxAPT, jako součást našich služeb správy serveru, pravidelně pomáháme našim zákazníkům provádět související dotazy Let's Encrypt.

V této souvislosti se podíváme na to, jak zabezpečit Apache pomocí Let's Encrypt na CentOS 7 instalací bezplatného certifikátu Let's Encrypt SSL.


Jak nainstalovat Let's Encrypt na CentOS 7?

Certifikáty Let's Encrypt SSL jsou platné 90 dní od data vydání. Certifikáty Let's Encrypt SSL jsou standardem dnes důvěryhodné pro všechny hlavní prohlížeče.

Než se pustíte do tohoto postupu instalace, ujistěte se, že jsou splněny následující předpoklady:

  • Systém se systémem CentOS 7 s uživatelem bez oprávnění root s právy sudo.
  • Apache by měl být nainstalován a konfigurován, jak je uvedeno v tomto tutoriálu.
  • Mějte pro svou doménu virtuálního hostitele Apache, jak je uvedeno v tomto návodu.
  • Název vaší domény by měl ukazovat na IP adresu vašeho serveru.


1. Nainstalujte klienta Certbot

Začněte instalací klientského balíčku Certbot na váš server, abyste získali certifikát Let's Encrypt SSL. Certbot je nástroj používaný k získávání certifikátů SSL z Let’s Encrypt a automatické aktivaci HTTPS na vašem serveru.

Balíček certbot poskytuje EPEL. Musíme tedy povolit úložiště EPEL zadáním :

$ sudo yum install epel-release

Nyní nainstalujte klienta certbot provedením následujícího příkazu:

$ sudo yum install httpd mod_ssl python-certbot-apache

Zkontrolujte instalaci certbota podle typu:

$ certbot --version

Pokud je instalace úspěšná, zobrazí se verze certbota.


2. Nastavte bránu firewall

Pokud nepoužíváte bránu firewall, můžete přeskočit.

Chcete-li nainstalovat SSL na váš webový server, měli byste se ujistit, že porty 80 a 443 jsou ve vaší bráně firewall otevřené. Porty uvnitř firewallu můžete otevřít pomocí následujících příkazů:

$ sudo firewall-cmd --add-service=http
$ sudo firewall-cmd --add-service=https
$ sudo firewall-cmd --runtime-to-permanent

Pokud na vašem serveru běží iptables, měli byste provést níže uvedené příkazy, abyste povolili provoz na portu 80 a portu 443:

$ sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT


3. Nakonfigurujte Let's Encrypt SSL na Apache

Nyní je vše připraveno, takže požádáme o získání SSL certifikátu od Let's Encrypt. Žádost pomocí certbota je velmi přímočarý proces. Let's Encrypt ověří vlastnictví domény a v případě úspěchu vydá SSL pro požadovanou doménu. Existuje několik způsobů, jak získat certifikát Let's Encrypt prostřednictvím pluginů. Spusťte níže uvedený příkaz pro vyžádání SSL:

$ sudo certbot --apache -d example.com -d www.example.com

Ve výše uvedeném příkazu bude vyžadovat certifikát SSL pro domény example.com i www.example.com.

Pokud spouštíte certbot poprvé, vyzve vás k zadání e-mailové adresy, kterou lze použít pro zasílání e-mailových upozornění souvisejících s obnovením a vypršením platnosti SSL. Také požádá o souhlas s podmínkami služby.

Poté bude certbot komunikovat se serverem Let's Encrypt a poté spustí výzvu k ověření, že vlastníte doménu, pro kterou certifikát žádáte.

Pokud bude ověření úspěšné, zeptá se vás, jak chcete nakonfigurovat nastavení HTTPS:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
 1: No redirect - Make no further changes to the webserver configuration.
 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
 new sites, or if you're confident your site works on HTTPS. You can undo this
 change by editing your web server's configuration.
 Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Vyberte svou volbu a pokračujte dalším krokem. Pokud nechcete konfigurační soubor měnit ručně, doporučujeme vám vybrat možnost Přesměrovat.

Na konci vám ukáže úspěšnou zprávu.

Konečně je vaše doména zabezpečená pomocí certifikátu Let’s Encrypt SSL. Můžete to zkontrolovat na svých stránkách s protokolem HTTPS.


Další nastavení zabezpečeného SSL pro Apache

Výchozí konfigurace SSL CentOS s verzí Apache je zastaralá, takže je méně bezpečná a vytváří bezpečnostní problémy. Potřebujeme tedy změnit některá nastavení, aby byla bezpečnější.

Chcete-li nakonfigurovat bezpečnější možnosti související s SSL, otevřete soubor ssl.conf:

$ sudo vi /etc/httpd/conf.d/ssl.conf

Nejprve byste měli v souboru najít řádky SSLProtocol a SSLCipherSuit a zakomentovat je, nebo můžete tyto dva řádky smazat:

# SSLProtocol all -SSLv2
. . .
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
Now append the following lines after VirtualHost block in /etc/httpd/conf.d/ssl.conf file.
. . .
. . .
# Begin copied text
# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
# Disable preloading HSTS for now.  You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
#Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11

Dále uložte a zavřete soubor. Aby se změny projevily, musíme restartovat službu Apache.

Spusťte níže uvedený příkaz:

$ sudo systemctl restart httpd

Jak provést automatickou obnovu certifikátu Let's Encrypt SSL?

Certifikáty Let's Encrypt SSL jsou platné 90 dní, takže je musíte před vypršením platnosti obnovit. Abychom automaticky obnovili certifikáty před vypršením jejich platnosti, vytvoříme cronjob, který bude probíhat dvakrát denně a automaticky obnoví jakýkoli certifikát 30 dní před vypršením jeho platnosti.

Upravme crontab pro vytvoření nové úlohy pomocí níže uvedeného příkazu:

$ sudo crontab -e

Přidejte následující řádky na konec souboru, aby se spustil dvakrát za den:

0 */12 * * * /usr/bin/certbot renew >> /var/log/le-renew.log

Uložte a zavřete soubor. Aby vstoupil v platnost, Apache se automaticky restartuje, pokud budou obnoveny nějaké certifikáty.

Proces obnovy můžete otestovat, můžete použít příkaz certbot následovaný přepínačem –dry-run:

$ sudo certbot renew --dry-run

Pokud nedojde k žádné chybě, znamená to, že proces obnovení byl úspěšný.


[Potřebujete naléhavou pomoc při opravě chyb konfigurace Apache? Můžeme ti pomoct. ]


Cent OS
  1. Nainstalovat phpMyAdmin s Nginx na CentOS 7 – proces krok za krokem?

  2. Nainstalovat phpMyAdmin s Apache na CentOS 7 – proces krok za krokem?

  3. Jak nainstalovat Let’s Encrypt with Apache na CentOS 7

  1. Zabezpečte Apache pomocí Lets Encrypt na Ubuntu 20.04

  2. Zabezpečte Nginx pomocí Lets Encrypt na CentOS 7

  3. Zabezpečte Apache pomocí Lets Encrypt na CentOS 7

  1. Zabezpečte Apache pomocí Lets Encrypt na CentOS 8

  2. Zabezpečte Apache pomocí Lets Encrypt na Debianu 10

  3. Jak nainstalovat WonderCMS s Apache a nechat šifrovat SSL na CentOS 8