GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come proteggere Nginx con Letsencrypt su Rocky Linux/Centos 8

È stato sviluppato dall'Internet Security Research Group (ISRG) e considerato affidabile da tutti i principali browser. Viene utilizzato per automatizzare il processo di creazione, convalida, firma, implementazione e rinnovo dei certificati per siti Web sicuri.

Il certificato è valido per soli 90 giorni, quindi dovrai rinnovarlo manualmente o o configurare il sistema di rinnovo automatico,

Let's encrypt supporta l'emissione di certificazioni automatizzate per Apache, Nginx, Plex e HAproxy. Tratteremo nginx in questa guida.

Contenuti correlati

  • Come proteggere Nginx con Letsencrypt su Ubuntu 20.04
  • Come installare e configurare Nginx, WordPress e Mysql 8 in Rocky Linux/Centos 8
  • Come installare Nginx e configurare l'host virtuale in Ubuntu 20.04

Prerequisiti:

  • Server CentOS 8 con accesso a Internet e IP pubblico
  • Un nome di dominio valido con DNS puntato al server
  • Accesso root al server Centos 8

Installazione del client Let's Encrypt di Certbot

Accedi al server utilizzando ssh [email protected] -p port :

ssh [email protected]

Aggiorna tutti i tuoi pacchetti alle ultime versioni disponibili.

sudo dnf update -y

Installa Nginx

sudo dnf install -y nginx

Avvia e abilita nginx

systemctl start nginx
systemctl enable nginx

Per questo creiamo una configurazione di nginx:
Configurazione di Nginx aggiornata:

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

}

Installa il client Certbot

Certbot è uno strumento da riga di comando utilizzato per semplificare il processo di ottenimento e rinnovo dei certificati SSL Let's Encrypt per il tuo sito web.

sudo dnf install epel-release
sudo dnf install certbot python3-certbot-nginx

Se utilizzi firewalld abilita http e https nel firewall:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

sudo firewall-cmd --reload

# Verify
sudo firewall-cmd --permanent --list-all

Ottenere un certificato

Ferma nginx:

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

Uscita

# 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

Avvia nginx:

sudo systemctl start nginx

Configurazione Nginx aggiornata:

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
}

Cent OS
  1. Come installare Mysql 8 su Rocky Linux/Centos 8

  2. Come installare Erlang su Rocky Linux/Alma Linux/CentOS 8

  3. Come installare il client FreeIPA su Rocky Linux/Alma Linux/CentOS 8

  4. Come migrare da Centos 8 a Rocky Linux 8

  5. Come proteggere Nginx con Letsencrypt su Ubuntu 20.04

Come installare Nginx con ngx_pagespeed su CentOS

Come installare Nginx con PHP-FastCGI su CentOS 6

Come installare Magento con Nginx su CentOS 7

Come installare LetsEncrypt SSL con Nginx su CentOS 6

Come migrare da CentOS 8 a Rocky Linux 8

Come proteggere Nginx con Let's Encrypt su CentOS 8