Directory articoli
Come richiedere Let's Encrypt?
Crittografiamo il principio del certificato SSL e il tutorial sull'installazione
Cos'è SSL? Chen Weiliang ne ha parlato nel suo precedente articolo, " Qual è la differenza tra HTTP e HTTPS? Una spiegazione dettagliata del processo di crittografia SSL ".
Oltre ai siti di e-commerce , che devono acquistare certificati SSL crittografati avanzati, anche i professionisti dei nuovi media che utilizzano siti web per promuovere i propri account ufficiali WeChat possono installare certificati SSL crittografati gratuiti. Questo può contribuire al miglioramento della SEO e al posizionamento del sito web nei motori di ricerca per determinate parole chiave.

Let's Encrypt ha un proprio flusso di lavoro ( https://certbot.eff.org/ ). Gli utenti Linux possono fare riferimento a tale flusso di lavoro e seguire questo tutorial.
Scarica prima lo strumento certbot-auto, quindi esegui le dipendenze di installazione dello strumento.
wget https://dl.eff.org/certbot-auto --no-check-certificate chmod +x ./certbot-auto ./certbot-auto -n
Genera certificato SSL
Successivamente, prendendo come esempio il nome di dominio del blog di Chen Weiliang , modificatelo in base alle vostre esigenze ed eseguite il seguente comando tramite SSH.
Assicurati di modificare il comando in:
- 邮箱
- percorso del server
- Dominio del sito Web
Directory singola a dominio singolo, genera un certificato:
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com
Directory singola multidominio, genera un certificato: (ad es. più nomi di dominio, directory singola, utilizza lo stesso certificato)
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com -d img.chenweiliang.com
Il certificato SSL generato verrà salvato in:/etc/letsencrypt/live/www.chenweiliang.com/ Sotto i contenuti.
Più nomi di dominio e più directory, genera un certificato: (ovvero più nomi di dominio, più directory, utilizza lo stesso certificato)
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com -d img.chenweiliang.com -w /home/eloha/public_html/site/etufo.org -d www.etufo.org -d img.etufo.org
Dopo che il certificato Let's Encrypt è stato installato correttamente, in SSH verrà visualizzato il seguente messaggio di richiesta:
NOTE IMPORTANTI:
– Congratulazioni!Il tuo certificato e chain sono stati salvati in:
/etc/letsencrypt/live/www.chenweiliang.com/fullchain.pem
Il tuo file chiave è stato salvato in:
/etc/letsencrypt/live/www.chenweiliang.com/privkey.pem
Il tuo certificato scadrà il 2018-02-26. Per ottenere un certificato nuovo o ottimizzato
versione di questo certificato in futuro, esegui semplicemente certbot-auto
Per rinnovare in modo non interattivo *tutti* i tuoi certificati, esegui
"certbot-rinnovo automatico"
- Se ti piace Certbot, considera di supportare il nostro lavoro tramite:
Donazioni a ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donare a EFF: https://eff.org/donate-le
Rinnovo del certificato SSL
Anche il rinnovo del certificato è molto comodo, grazie a crontab che lo automatizza. Per alcune versioni di Debian che non hanno crontab installato, è possibile installarlo manualmente.
apt-get install cron
I seguenti comandi per nginx e apache vengono inseriti nel file /etc/crontab , il che significa che vengono rinnovati ogni 10 giorni, e un periodo di validità di 90 giorni è sufficiente.
Nginx file crontab, aggiungi:
0 3 */10 * * /root/certbot-auto renew --renew-hook "/etc/init.d/nginx reload"
File crontab Apache, aggiungi:
0 3 */10 * * /root/certbot-auto renew --renew-hook "service httpd restart"
Certificato SSL Configurazione Apache
Ora, dobbiamo apportare modifiche alla configurazione di Apache.
Suggerimenti:
- se usiPannello di controllo CWP, nel controllo Aggiungi nome di dominio Genera automaticamente un certificato SSL, configurerà automaticamente il certificato SSL per Apache.
- Se esegui più dei seguenti passaggi, potrebbe verificarsi un errore dopo il riavvio di Apache.
- In caso di errore, eliminare la configurazione aggiunta manualmente.
Modifica il file httpd.conf ▼
/usr/local/apache/conf/httpd.conf
Trova ▼
Listen 443
- (rimuovere il numero di commento precedente #)
o aggiungi la porta di ascolto 443 ▼
Listen 443
SSH controlla la porta di ascolto di Apache ▼
grep ^Listen /usr/local/apache/conf/httpd.conf
Trova ▼
mod_ssl
- (rimuovere il numero di commento precedente #)
o aggiungi ▼
LoadModule ssl_module modules/mod_ssl.so
Trova ▼
httpd-ssl
- (rimuovere il numero di commento precedente #)
Quindi, SSH esegui il seguente comando (nota per cambiare il percorso al tuo):
at >/usr/local/apache/conf/extra/httpd-ssl.conf<<EOF Listen 443 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProxyCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLHonorCipherOrder on SSLProtocol all -SSLv2 -SSLv3 SSLProxyProtocol all -SSLv2 -SSLv3 SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 SSLMutex "file:/usr/local/apache/logs/ssl_mutex" EOF
Successivamente, al termine della configurazione di Apache per il sito web creato, sotto </VirtualHost>.
Aggiungi il file di configurazione della sezione SSL (nota per rimuovere il commento e cambia il percorso con il tuo):
<VirtualHost *:443> DocumentRoot /home/admin/web/chenweiliang.com/public_html //网站目录 ServerName www.chenweiliang.com:443 //域名 ServerAdmin [email protected] //邮箱 ErrorLog "/var/log/www.chenweiliang.com-error_log" //错误日志 CustomLog "/var/log/www.chenweiliang.com-access_log" common //访问日志 SSLEngine on SSLCertificateFile /etc/letsencrypt/live/www.chenweiliang.com/fullchain.pem //之前生成的证书 SSLCertificateKeyFile /etc/letsencrypt/live/www.chenweiliang.com/privkey.pem //之前生成的密钥 <Directory "/home/admin/web/chenweiliang.com/public_html"> //网站目录 SetOutputFilter DEFLATE Options FollowSymLinks AllowOverride All suPHP_UserGroup eloha eloha //用户组(有些服务器配置需要,有些可能不需要,出错请删除此行) Order allow,deny Allow from all DirectoryIndex index.html index.phps </Directory> </VirtualHost>
Infine riavvia Apache su di esso:
service httpd restart
Apache forza il reindirizzamento HTTP su HTTPS
- Molte richieste web possono sempre essere eseguite solo con SSL.
- Dobbiamo assicurarci che ogni volta che utilizziamo SSL, è necessario accedere al sito Web tramite SSL.
- Se un utente tenta di accedere al sito Web con un URL non SSL, deve essere reindirizzato al sito Web SSL.
- Reindirizzamento all'URL SSL utilizzando il modulo mod_rewrite di Apache.
- Come l'utilizzo del pacchetto di installazione LAMP con un clic, l'installazione automatica integrata del certificato SSL e il reindirizzamento forzato a HTTPS, il reindirizzamento a HTTPSVigente, non è necessario aggiungere un reindirizzamento HTTPS.
Aggiungi regola di reindirizzamento
- Nel file di configurazione di Apache, modifica l'host virtuale del sito Web e aggiungi le seguenti impostazioni.
- Puoi anche aggiungere le stesse impostazioni alla radice del documento sul tuo sito web nel tuo file .htaccess.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Se desideri semplicemente specificare un determinato URL da reindirizzare a HTTPS:
RewriteEngine On RewriteRule ^message$ https://www.etufo.org/message [R=301,L]
- Se qualcuno tenta di accedere messaggio , la pagina passerà a https e l'utente può accedere all'URL solo con SSL.
Riavvia Apache per rendere effettivo il file .htaccess:
service httpd restart
注意 事项
- Si prega di modificare l'indirizzo e-mail sopra con il proprio indirizzo e-mail.
- Ricordati di cambiare il nome di dominio del sito web sopra con il nome di dominio del tuo sito web.
Problema di posizione della regola di reindirizzamento
Quando si inseriscono regole di reindirizzamento in regole pseudo-statiche, si incontra spesso il problema che HTTP non può reindirizzare l'intero sito a HTTPS.
Inizialmente abbiamo copiato il codice di reindirizzamento in .htaccess e apparirà nei seguenti casi ▼
![La regola di reindirizzamento [L] è sopra. La regola di reindirizzamento [L] è sopra.](https://img.chenweiliang.com/2018/03/https-rule-1.png)
- [L] indica che la regola corrente è l'ultima, interrompere l'analisi delle seguenti regole di riscrittura.
- Quindi, quando si accede alla pagina dell'articolo reindirizzato, [L] interrompe le seguenti regole, quindi le regole di reindirizzamento non funzionano.
Quando si accede a una homepage HTTP, si desidera attivare un reindirizzamento URL, bypassando le regole di riscrittura URL per eseguire le regole di reindirizzamento, in modo che l'intero sito possa essere reindirizzato da HTTP a HTTPS.
Non posizionare le regole di reindirizzamento HTTPS sotto le regole [L] ; posizionale sopra le regole [L] . ▼
![Di seguito sono riportate le regole di reindirizzamento SSL pseudo-statiche [L]. Di seguito sono riportate le regole di reindirizzamento SSL pseudo-statiche [L].](https://img.chenweiliang.com/2018/03/pseudo-static-ssl-jump.png)
Lettura estesa:
- Qual è la differenza tra http e https? Spiegazione dettagliata del processo di crittografia SSL
- Cosa devo fare se ricevo un errore 500 dopo aver installato il certificato Let's Encrypt SSL nel pannello di controllo di CWP?
- Salta automaticamente al nome di dominio di secondo livello senza il nome di dominio di primo livello www: il nome di dominio principale 301 reindirizza www
Speriamo che l'articolo "Come richiedere un certificato Let's Encrypt? Principi e tutorial di installazione dei certificati SSL gratuiti Let's Encrypt" condiviso sul blog di Chen Weiliang ( https://www.chenweiliang.com/ ) possa esservi utile.
Sentitevi liberi di condividere il link di questo articolo: https://www.chenweiliang.com/cwl-512.html
