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.