GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So sichern Sie Nginx mit Letsencrypt unter Ubuntu 20.04

Es wurde von der Internet Security Research Group (ISRG) entwickelt und wird von allen gängigen Browsern als vertrauenswürdig eingestuft. Es wird verwendet, um den Prozess der Zertifikatserstellung, -validierung, -signierung, -implementierung und -erneuerung von Zertifikaten für sichere Websites zu automatisieren.

Das Zertifikat ist nur 90 Tage gültig, daher müssen Sie es manuell erneuern oder das automatische Verlängerungssystem einrichten,

Let’s encrypt unterstützt die automatisierte Zertifizierungsausstellung für Apache, Nginx, Plex und HAproxy. Wir werden nginx in diesem Leitfaden behandeln.

Verwandte Inhalte

  • So sichern Sie Nginx mit Letsencrypt auf Rocky Linux/Centos 8
  • Wie man Nginx, WordPress und Mysql 8 in Rocky Linux/Centos 8 installiert und einrichtet
  • So installieren Sie Nginx und konfigurieren den virtuellen Host in Ubuntu 20.04

Voraussetzungen:

  • Ein Ubuntu 20.04-Server mit Internetzugang und öffentlicher IP
  • Ein gültiger Domänenname, dessen DNS auf den Server zeigt
  • Root-Zugriff oder Sudo-Zugriff auf den Server

Installieren des Certbot Let’s Encrypt Client

Melden Sie sich mit ssh [email protected] -p port beim Server an :

ssh [email protected]

Aktualisieren Sie alle Ihre Pakete auf die neuesten verfügbaren Versionen.

sudo apt update
sudo apt upgrade -y

Installieren Sie Nginx

sudo apt install -y nginx

Starten und aktivieren Sie nginx

systemctl start nginx
systemctl enable nginx

Lassen Sie uns eine nginx-Konfiguration für site1.citizix.com erstellen:

Öffnen Sie die Konfigurationsdatei mit Ihrem Texteditor:

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

Diesen Inhalt hinzufügen:

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;
    }

}

Installieren Sie den Certbot-Client

Der Certbot ist ein Befehlszeilentool, das verwendet wird, um den Prozess zum Erhalten und Erneuern von SSL-Zertifikaten von Let’s Encrypt für Ihre Website zu vereinfachen. Verwenden Sie diesen Befehl, um es zusammen mit Python-Abhängigkeiten zu installieren:

sudo apt install certbot python3-certbot-nginx

Wenn Sie eine ufw-Firewall installiert und aktiviert haben, öffnen Sie http- und https-Datenverkehr aus dem Internet:

ufw allow 80
ufw allow 443
ufw reload

Ein Zertifikat erhalten

Stoppen Sie nginx:

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

Ausgabe

# 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

Starten Sie nginx:

sudo systemctl start nginx

Aktualisieren Sie die Nginx-Konfiguration, um den HTTP-Verkehr auf https umzuleiten

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. So sichern Sie Nginx mit Lets Encrypt auf Ubuntu 20.04 / 18.04

  2. So installieren Sie WordPress mit Nginx unter Ubuntu 18.04

  3. Sichern Sie Nginx mit Let’s Encrypt auf Ubuntu 18.04 – wie geht das?

  4. So sichern Sie Nginx mit Letsencrypt unter Rocky Linux/Centos 8

  5. So sichern Sie Nginx mit Let’s Encrypt unter Ubuntu 20.04

So installieren Sie Redmine 3.2 mit Nginx unter Ubuntu 16.04

So installieren Sie OSClass mit Nginx unter Ubuntu 20.04

So installieren Sie Nginx mit ModSecurity unter Ubuntu 15.04

So installieren Sie Nextcloud 13 auf Ubuntu 16.04 mit Nginx

So installieren Sie LetsEncrypt mit Nginx unter Ubuntu 15.04

So sichern Sie Nginx mit Let’s Encrypt unter Ubuntu 20.04