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

Come installare Let's Encrypt su CentOS 8 con Nginx

In questo tutorial spiegheremo come installare un certificato SSL Let's Encrypt gratuito su un VPS CentOS 8 con Nginx come server web.

Let's Encrypt è un'autorità di certificazione gratuita, open source e senza scopo di lucro che fornisce certificati SSL gratuiti per i siti Web per abilitare la crittografia TLS. È 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.

L'obiettivo principale di Let's Encrypt è promuovere l'uso di SSL sul Web e creare connessioni crittografate su Internet, mantenendo tutti più al sicuro durante il processo. Il certificato è valido per soli 90 giorni, quindi dovrai rinnovarlo manualmente o o configurare il sistema di rinnovo automatico, che dovrebbe essere abilitato per impostazione predefinita.

Attualmente, Let's encrypt supporta l'emissione di certificazioni automatizzate per Apache, Nginx, Plex e HAproxy, che dovrebbero coprire quasi tutti i casi d'uso. Iniziamo con la nostra guida all'installazione.

Prerequisiti

  • Per lo scopo di questo tutorial, utilizzeremo un VPS CentOS 8.
  • È richiesto anche l'accesso root SSH completo o un utente con privilegi sudo. I nostri VPS sono tutti dotati di accesso root incluso per impostazione predefinita senza costi aggiuntivi.
  • Un nome di dominio valido è puntato verso il tuo indirizzo IP VPS.

Fase 1:accedi e aggiorna i pacchetti

Innanzitutto, dovremo accedere al nostro server utilizzando SSH. Puoi farlo inserendo questo comando:

ssh root@IP_Address -p Port_Number

Ricorda di sostituire "root" con il tuo nome utente se non stai utilizzando l'utente root. Modifica "IP_Address" e "Port_Number" in base all'indirizzo IP del tuo server e al numero di porta SSH. Il numero di porta SSH predefinito è 22.

Una volta effettuato l'accesso, dovresti aggiornare tutti i tuoi pacchetti alle ultime versioni disponibili.

dnf update -y

Una volta completati gli aggiornamenti, riavvia il sistema per applicare le modifiche.

Fase 2:installa Nginx e PHP

Innanzitutto, installa il server web Nginx e PHP eseguendo il seguente comando:

dnf install nginx php php-fpm php-cli -y

Una volta installati tutti i pacchetti, avvia i servizi Nginx e PHP-FPM e abilita l'avvio all'avvio con il seguente comando:

systemctl start nginx
systemctl enable nginx
systemctl start php-fpm
systemctl enable php-fpm

Fase 3:Configura PHP-FPM

Per impostazione predefinita, PHP-FPM è configurato per essere eseguito come utente e gruppo Apache. In questo tutorial utilizzeremo il server web Nginx. Ciò significa che dovrai configurare PHP-FPM per l'esecuzione come utente e gruppo Nginx.

Per farlo, modifica il file di configurazione PHP-FPM:

nano /etc/php-fpm.d/www.conf

Modifica il valore dell'utente e del gruppo da apache a nginx , come mostrato di seguito:

user = nginx
group = nginx

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio PHP-FPM per applicare le modifiche:

systemctl restart php-fpm

Fase 4:crea un host virtuale Nginx

Prima di iniziare, crea un sito Web di esempio per Nginx.

mkdir /var/www/html/yourdomain.com

Quindi, crea un file PHP di esempio all'interno della directory del sito Web e aprilo con il tuo editor di testo preferito:

nano /var/www/html/yourdomain.com/index.php

Aggiungi le seguenti righe al file:

<?php
phpinfo();
?>

Salva e chiudi il file, quindi imposta la proprietà del tuo sito web su nginx con il seguente comando:

chown -R nginx:nginx /var/www/html/yourdomain.com/

Quindi, crea un nuovo file di configurazione dell'host virtuale Nginx che servirà il tuo sito Web:

nano /etc/nginx/conf.d/yourdomain.com.conf

Aggiungi le seguenti righe:

server {
server_name yourdomain.com;
root /var/www/html/yourdomain.com;
location / {
index index.php;
}
access_log /var/log/nginx/yourdomain.access.log;
error_log /var/log/nginx/yourdomain.error.log;
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}

Assicurati di sostituire tutte le istanze di yourdomain con il tuo nome di dominio registrato.

Salva e chiudi il file, quindi controlla il file di configurazione di Nginx per eventuali errori di sintassi con il seguente comando:

nginx -t

Dovresti vedere il seguente output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Quindi, riavvia il servizio Nginx per applicare le modifiche alla configurazione:

systemctl restart nginx

Il tuo server web dovrebbe ora essere attivo e funzionante.

Fase 5:installa il client Certbot

Per generare un certificato Let's Encrypt per il tuo sito web, dovrai installare il client Certbot nel tuo sistema.

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.

Per impostazione predefinita, il pacchetto Certbot non è disponibile nel repository standard CentOS. Quindi dovrai scaricarlo dal sito Web del fornitore.

Puoi scaricarlo e installarlo con il seguente comando:

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Una volta installato Certbot, esegui il seguente comando per ottenere e installare un certificato SSL per il tuo sito web:

certbot-auto --nginx -d yourdomain.com

Il comando precedente installerà prima tutte le dipendenze richieste sul tuo server. Una volta installato, ti verrà chiesto di fornire un indirizzo email e di accettare i termini del servizio, come mostrato di seguito:

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

Digita N se non desideri condividere la tua email con l'EFF, quindi premi Invio per continuare. Una volta installato il certificato, dovresti vedere il seguente output:

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for yourdomain.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/yourdomain.com.conf
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/yourdomain.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://yourdomain.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=yourdomain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/yourdomain.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/yourdomain.com/privkey.pem
Your cert will expire on 2020-08-30. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again with the "certonly" option. To non-interactively renew *all*
of your certificates, run "certbot-auto 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
- We were unable to subscribe you the EFF mailing list because your
e-mail address appears to be invalid. You can try again later by
visiting https://act.eff.org.

Ora, il tuo sito Web è protetto con Let's Encrypt SSL. Puoi testare il tuo certificato SSL utilizzando uno strumento online.

Fase 6:accedi al tuo sito web

Ora apri il tuo browser web e accedi al tuo sito web in modo sicuro utilizzando l'URL https://yourdomain.com .

Dovresti vedere la seguente pagina:

Nella pagina sopra, dovresti essere in grado di vedere che il sito è protetto correttamente, di solito con l'icona di un lucchetto verde sul bordo sinistro della barra degli indirizzi.

Passaggio 7:imposta il rinnovo automatico

Ora che abbiamo installato Let's Encrypt sul nostro CentOS 8 VPS, dovremo assicurarci che il nostro certificato rimanga rinnovato e valido.

Per impostazione predefinita, i certificati Let's Encrypt sono validi per 90 giorni. Si consiglia di rinnovare il certificato prima che scada poiché un certificato scaduto invierà agli utenti un avviso di sicurezza quando tentano di visitare il tuo sito web.

Puoi testare il processo di rinnovo manualmente con il seguente comando.

certbot-auto renew --dry-run

Il comando precedente verificherà automaticamente i certificati attualmente installati e tenterà di rinnovarli se mancano meno di 30 giorni dalla data di scadenza.

Puoi anche aggiungere un cronjob per eseguire automaticamente il comando sopra due volte al giorno.

Per farlo, modifica il file crontab con il seguente comando:

crontab -e

Aggiungi la seguente riga:

* */12 * * *   root /usr/local/bin/certbot-auto renew >/dev/null 2>&1

Puoi sempre modificare l'intervallo di questo cronjob se due volte al giorno è troppo spesso regolando i valori all'estrema sinistra.

Salva e chiudi il file. Ora il tuo certificato verrà rinnovato regolarmente. Congratulazioni! Ora hai installato Let's Encrypt sul tuo server CentOS 8 con Nginx.

La configurazione di un sito Web con tutti i plug-in e le funzionalità di cui hai bisogno può richiedere molto tempo e fatica che potresti spendere per gestire la tua attività. Se utilizzi uno dei nostri servizi di hosting CentOS 8 gestiti, faremo tutto il lavoro per te. Dalla manutenzione del server alle richieste di installazione e configurazione, copriamo tutto ciò di cui hai bisogno per mantenere il tuo server in perfetta forma, il tutto senza costi aggiuntivi.

Se questo tutorial ti ha aiutato a configurare il tuo sito Web Nginx con SSL sul tuo CentOS 8 VPS, ti preghiamo di considerare di lasciare un commento nella nostra sezione commenti o di condividere questo post sui social media utilizzando le nostre scorciatoie di condivisione. Grazie.


Cent OS
  1. Proteggi Nginx con Lets Encrypt su CentOS 7

  2. Come installare WordPress con Nginx su CentOS 7

  3. Come installare phpMyAdmin con Nginx su CentOS 7

  4. Come installare Let's Encrypt (Certbot) su CentOS 8?

  5. Come installare Let's Encrypt su CentOS 8 con Nginx

Come installare Nginx con PHP-FastCGI su CentOS 6

Come installare Magento con Nginx su CentOS 7

Come installare Let's Encrypt SSL con Nginx su CentOS 7

Come installare Let's Encrypt SSL con Apache su CentOS 7

Come installare Let's Encrypt SSL con Lighttpd su CentOS 7

Come installare Nginx con Let's Encrypt SSL su Fedora 35