GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak zabezpečit Nginx pomocí Letsencrypt na Ubuntu 20.04

Byl vyvinut organizací Internet Security Research Group (ISRG) a důvěřují mu všechny hlavní prohlížeče. Používá se k automatizaci procesu vytváření, ověřování, podepisování, implementace a obnovování certifikátů pro zabezpečené webové stránky.

Certifikát je platný pouze 90 dní, takže jej budete muset obnovit ručně nebo nastavit systém automatického obnovení,

Let's encrypt podporuje automatické vydávání certifikací pro Apache, Nginx, Plex a HAproxy. V této příručce se budeme zabývat nginx.

Související obsah

  • Jak zabezpečit Nginx pomocí Letsencrypt na Rocky Linux/Centos 8
  • Jak nainstalovat a nastavit Nginx, WordPress a Mysql 8 v Rocky Linux/Centos 8
  • Jak nainstalovat Nginx a nakonfigurovat virtuálního hostitele v Ubuntu 20.04

Předpoklady:

  • Server Ubuntu 20.04 s přístupem k internetu a veřejnou IP
  • Platný název domény s DNS nasměrovaným na server
  • Přístup uživatele root nebo sudo přístup k serveru

Instalace klienta Certbot Let’s Encrypt

Přihlaste se k serveru pomocí ssh [email protected] -p port :

ssh [email protected]

Aktualizujte všechny své balíčky na nejnovější dostupné verze.

sudo apt update
sudo apt upgrade -y

Nainstalujte Nginx

sudo apt install -y nginx

Spusťte a povolte nginx

systemctl start nginx
systemctl enable nginx

Pojďme vytvořit konfiguraci nginx pro site1.citizix.com:

Otevřete konfigurační soubor pomocí textového editoru:

sudo vim /etc/nginx/conf.d/site1.conf

Přidejte tento obsah:

server {
    listen 80;
    server_tokens off;
    client_max_body_size 10M;
    server_name site1.citizix.com;

    access_log /var/log/nginx/site1.citizix.com/access.log;
    error_log /var/log/nginx/site1.citizix.com/error.log;
    ignore_invalid_headers off;

    ## Deny illegal Host headers
    if ($host !~* ^(site1.citizix.com)$ ) {
        return 444;
    }

    root /var/www/site1.citizix.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header   Host $host;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Scheme $scheme;
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }

}

Nainstalujte klienta Certbot

Certbot je nástroj příkazového řádku, který se používá ke zjednodušení procesu získávání a obnovování certifikátů Let’s Encrypt SSL pro váš web. Tento příkaz použijte k instalaci spolu se závislostmi pythonu:

sudo apt install certbot python3-certbot-nginx

pokud máte nainstalovaný a povolený firewall ufw, otevřete http a https provoz z webu:

ufw allow 80
ufw allow 443
ufw reload

Získání certifikátu

Zastavit nginx:

sudo systemctl stop nginx
sudo certbot --nginx --non-interactive --agree-tos --email [email protected] -d site1.citizix.com

Výstup

# sudo certbot --nginx --non-interactive --agree-tos --email [email protected] -d site1.citizix.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Account registered.
Requesting a certificate for site1.citizix.com
Performing the following challenges:
http-01 challenge for site1.citizix.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/site1.citizix.com.conf
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/site1.citizix.com.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled
https://site1.citizix.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/site1.citizix.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/site1.citizix.com/privkey.pem
   Your certificate will expire on 2021-11-05. 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"
 - 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

Spustit nginx:

sudo systemctl start nginx

Aktualizujte konfiguraci Nginx, abyste přesměrovali provoz http na https

server {
    server_tokens off;
    client_max_body_size 10M;
    server_name site1.citizix.com;

    access_log /var/log/nginx/site1.citizix.com/access.log;
    error_log /var/log/nginx/site1.citizix.com/error.log;
    ignore_invalid_headers off;

    ## Deny illegal Host headers
    if ($host !~* ^(site1.citizix.com)$ ) {
        return 444;
    }

    root /var/www/site1.citizix.com;

    location / {
        proxy_pass http://127.0.0.1:8096;
        proxy_set_header   Host $host;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Scheme $scheme;
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/site1.citizix.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/site1.citizix.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    if ($host = site1.citizix.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    server_name site1.citizix.com;
    return 404; # managed by Certbot
}

Ubuntu
  1. Zabezpečte Nginx pomocí Let's Encrypt na Ubuntu 18.04 - Jak na to?

  2. Jak zabezpečit Nginx pomocí Letsencrypt na Rocky Linux/Centos 8

  3. Jak zabezpečit Nginx pomocí Let's Encrypt na Ubuntu 20.04

  1. Jak zabezpečit Nginx pomocí Lets Encrypt na Ubuntu 20.04 / 18.04

  2. Jak nainstalovat WordPress s Nginx na Ubuntu 18.04

  3. Jak nainstalovat phpMyAdmin s Nginx na Ubuntu 18.04

  1. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  2. Jak nainstalovat Grav CMS s Nginx na Ubuntu 16.04

  3. Jak nainstalovat Magento 2 s Nginx a Letsencrypt na Ubuntu 18.04