LEMP je open-source model zásobníků webových služeb složený ze čtyř komponent:Linux, Nginx, MariaDB a PHP. Zásobník LEMP se používá pro vývoj a nasazení webových aplikací. Většina webových aplikací běží na zásobníku LEMP, takže je velmi důležité, aby správce systému byl schopen zabezpečit zásobník LEMP pomocí SSL. Pokud jste nový webový vývojář nebo blogger, který hledá lepší organický webový provoz, pak je nezbytné mít webový server s podporou SSL pro SEO (optimalizaci pro vyhledávače).
Let’s Encrypt je bezplatná certifikační autorita s otevřeným zdrojovým kódem, která poskytuje bezplatné certifikáty SSL. Let’s Encrypt je nezisková certifikační autorita, jejímž cílem je vytvořit bezpečnější web podporou širokého přijetí HTTPS.
V tomto tutoriálu se naučíme, jak zabezpečit LEMP server pomocí Let’s Encrypt free SSL na Ubuntu 18.04 VPS.
Předpoklady
- Nový server VPS Ubuntu 18.04 v cloudu Atlantic.net.
- Platný název domény odkazující na vaši IP adresu VPS. V tomto tutoriálu použijeme example.com.
Krok 1 – Vytvořte cloudový server Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 18.04 s alespoň 2 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte na svůj server Ubuntu 18.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
Krok 2 – Instalace LEMP na server
Nejprve nainstalujte LEMP na server spuštěním následujícího příkazu:
apt-get install nginx mariadb-server php php-common -y
Jakmile jsou všechny balíčky nainstalovány, spusťte webovou službu Nginx a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start nginx systemctl enable nginx
Dále otevřete webový prohlížeč a zadejte adresu URL http://example.com. Měli byste vidět výchozí stránku Nginx:
Krok 3 – Vytvořte web Nginx pro svou doménu
Dále budete muset vytvořit virtuálního hostitele Nginx pro vaši doménu. Na tento web později nainstalujeme bezplatné SSL Let’s Encrypt.
Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/nginx/sites-available/example.com.conf
Přidejte následující řádky:
server { listen 80; root /var/www/html; index index.html; server_name example.com; location / { try_files $uri $uri/ =404; } }
Uložte a zavřete soubor. Poté povolte virtuálního hostitele Nginx pomocí následujícího příkazu:
ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Dále zkontrolujte Nginx, zda neobsahuje chyby syntaxe pomocí následujícího příkazu:
nginx -t
Pokud vše půjde dobře, měli byste vidět následující výstup:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Nakonec restartujte službu Nginx, abyste použili změny konfigurace:
systemctl restart nginx
Dále vytvořte soubor index.html pro vaši doménu:
nano /var/www/html/index.html
Add the following lines: <html> Nginx web server is now secured with Let's Encrypt free SSL </html>
Uložte a zavřete soubor. Poté změňte vlastnictví souboru na www-data pomocí následujícího příkazu:
chown www-data: /var/www/html/index.html
Krok 4 – Nainstalujte Let’s Encrypt na vaši doménu
Nginx je nyní nainstalován a spuštěn. Je čas to zabezpečit pomocí bezplatného SSL Let’s Encrypt.
Nejprve si budete muset nainstalovat nástroj Certbot, abyste získali bezplatný certifikát SSL z Let’s Encrypt a nainstalovali jej na svou doménu. Certbot je bezplatný a plně vybavený nástroj, který automatizuje proces získávání a instalace SSL ve vaší doméně.
Úložiště můžete přidat pomocí následujícího příkazu:
add-apt-repository ppa:certbot/certbot
Jakmile je úložiště přidáno, aktualizujte úložiště a nainstalujte Certbot pomocí následujícího příkazu:
apt-get update -y apt-get install python-certbot-nginx -y
Po instalaci spusťte následující příkaz pro získání a instalaci certifikátu pro vaši doménu:
certbot --nginx -d example.com
Během instalace budete muset zadat svou e-mailovou adresu a souhlasit s podmínkami služby, jak je uvedeno níže:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N
Zadejte N a stiskněte Enter pokračovat. Měli byste vidět následující výstup:
Obtaining a new certificate Performing the following challenges: http-01 challenge for example.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/example.com.conf 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):
Here, you will need to select option 1 or 2. Option 1 only downloads the Let's Encrypt certificate and does not change your web server configuration file. Option 2 will download the Let's Encrypt certificate and configure your webserver config file to redirect all requests to secure HTTPS access. Please select option 2 and hit Enter. Once the installation has been completed successfully, you should see the following output: Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/example.com.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2019-11-17. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Nyní otevřete webový prohlížeč a zadejte adresu URL https://example.com. Všimnete si, že to znamená, že váš web je zabezpečený.
Mezitím můžete také otestovat svůj server pomocí SSL Labs Server Test :
Krok 5 – Nastavení automatického obnovení certifikátu SSL šifrováním
Automatické obnovení můžete nastavit úpravou souboru crontab, jak je znázorněno níže:
crontab -e
Přidejte následující řádek:
12 8 * * * root /usr/bin/certbot renew >/dev/null 2>&1
Po dokončení uložte a zavřete soubor.
Certifikát SSL můžete také obnovit ručně pomocí následujícího příkazu:
certbot renew --dry-run
Pokud se zobrazí chyba, certbot automaticky obnoví certifikát pro váš web. Pokud se automatické obnovení nezdaří, budete upozorněni na zadanou e-mailovou adresu.
Závěr
Ve výše uvedeném článku jste se naučili, jak zabezpečit server LEMP pomocí Let’s Encrypt Free SSL na Ubuntu 18.04. Pokud jste připraveni začít s virtuálním soukromým serverem pro hostování vašich webových stránek, navštivte stránku VPS Hosting společnosti Atlantic.Net, kde najdete hostingový balíček, který je pro vás ten pravý.