Straipsnių katalogas
Kaip kreiptis dėl Let's Encrypt?
Užšifruokime SSL sertifikato principą ir diegimo pamoką
Kas yra SSL? Chen Weiliangas tai aptarė ankstesniame savo straipsnyje „ Kuo skiriasi HTTP ir HTTPS? Išsamus SSL šifravimo proceso paaiškinimas “.
Be el. prekybos svetainių, kurios privalo įsigyti pažangius užšifruotus SSL sertifikatus, naujosios žiniasklaidos specialistai, kurie naudoja svetaines savo oficialioms „WeChat“ paskyroms reklamuoti , gali įdiegti nemokamus užšifruotus SSL sertifikatus. Tai gali padėti pagerinti SEO ir svetainės raktinių žodžių reitingą paieškos sistemose.

„Let's Encrypt“ turi savo darbo eigą ( https://certbot.eff.org/ ). „Linux“ naudotojai gali remtis šia darbo eiga ir vadovautis šia pamoka.
Pirmiausia atsisiųskite certbot-auto įrankį, tada paleiskite įrankio diegimo priklausomybes.
wget https://dl.eff.org/certbot-auto --no-check-certificate chmod +x ./certbot-auto ./certbot-auto -n
Sukurkite SSL sertifikatą
Toliau, paimdami Chen Weiliango tinklaraščio domeno vardą kaip pavyzdį, pakeiskite jį pagal savo poreikius ir paleiskite šią komandą per SSH.
Būtinai pakeiskite komandą:
- Pašto dėžutė
- serverio kelias
- svetainės domeno vardas
Vieno domeno vienas katalogas, sugeneruokite sertifikatą:
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com
Kelių domenų vienas katalogas, sugeneruokite sertifikatą: (ty keli domenų vardai, vienas katalogas, naudokite tą patį sertifikatą)
./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
Sukurtas SSL sertifikatas bus išsaugotas:/etc/letsencrypt/live/www.chenweiliang.com/ Pagal turinį.
Keli domenų vardai ir keli katalogai, sugeneruokite sertifikatą: (tai yra, keli domenų vardai, keli katalogai, naudokite tą patį sertifikatą)
./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
Sėkmingai įdiegus sertifikatą Let's Encrypt, SSH pasirodys šis raginimas:
SVARBIOS PASTABOS:
– Sveikiname!Jūsų sertifikatas ir chain buvo išsaugoti adresu:
/etc/letsencrypt/live/www.chenweiliang.com/fullchain.pem
Jūsų rakto failas buvo išsaugotas adresu:
/etc/letsencrypt/live/www.chenweiliang.com/privkey.pem
Jūsų sertifikatas baigs galioti 2018-02-26. Norėdami gauti naują arba pataisytą
šio sertifikato versiją ateityje, tiesiog paleiskite certbot-auto
Jei norite neinteraktyviai atnaujinti *visus* sertifikatus, paleiskite
„certbot-auto renew“
- Jei jums patinka „Certbot“, apsvarstykite galimybę paremti mūsų darbą:
Auka ISRG / Let's Encrypt: https://letsencrypt.org/donate
Aukojimas EŽF: https://eff.org/donate-le
SSL sertifikato atnaujinimas
Sertifikatų atnaujinimas taip pat labai patogus, naudojant „crontab“ automatiniam atnaujinimui. Kai kuriose „Debian“ versijose, kuriose nėra įdiegtos „crontab“, galite ją pirmiausia įdiegti rankiniu būdu.
apt-get install cron
Šios „nginx“ ir „apache“ komandos yra įrašytos į /etc/crontab failą, tai reiškia, kad jos atnaujinamos kas 10 dienų, o 90 dienų galiojimo laikotarpis yra pakankamas.
Nginx crontab failą, pridėkite:
0 3 */10 * * /root/certbot-auto renew --renew-hook "/etc/init.d/nginx reload"
Apache crontab failą, pridėkite:
0 3 */10 * * /root/certbot-auto renew --renew-hook "service httpd restart"
SSL sertifikato „Apache“ konfigūracija
Dabar turime pakeisti „Apache“ konfigūraciją.
Patarimai:
- jei naudojateCWP valdymo skydelis, pažymėkite Pridėti domeno pavadinimą Automatiškai generuoti SSL sertifikatą, jis automatiškai sukonfigūruos Apache SSL sertifikatą.
- Jei atliksite daugiau iš šių veiksmų, iš naujo paleidus Apache gali įvykti klaida.
- Jei įvyko klaida, ištrinkite rankiniu būdu pridėtą konfigūraciją.
Redaguokite httpd.conf failą ▼
/usr/local/apache/conf/httpd.conf
Rasti ▼
Listen 443
- (pašalinkite ankstesnį komentaro numerį #)
arba pridėkite klausymosi prievadą 443 ▼
Listen 443
SSH patikrinkite „Apache“ klausymo prievadą ▼
grep ^Listen /usr/local/apache/conf/httpd.conf
Rasti ▼
mod_ssl
- (pašalinkite ankstesnį komentaro numerį #)
arba pridėti ▼
LoadModule ssl_module modules/mod_ssl.so
Rasti ▼
httpd-ssl
- (pašalinkite ankstesnį komentaro numerį #)
Tada SSH vykdykite šią komandą (pastaba pakeisti kelią į savo):
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
Toliau, sukurtos svetainės „Apache“ konfigūracijos pabaigoje, dalyje </VirtualHost>.
Pridėkite SSL skyriaus konfigūracijos failą (pastaba pašalinti komentarą ir pakeisti kelią į savo):
<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>
Galiausiai iš naujo paleiskite „Apache“:
service httpd restart
„Apache“ priverčia HTTP peradresavimą į HTTPS
- Daugelis žiniatinklio užklausų visada gali būti vykdomos tik naudojant SSL.
- Turime užtikrinti, kad kiekvieną kartą, kai naudojame SSL, svetainė turi būti pasiekiama per SSL.
- Jei kuris nors vartotojas bando pasiekti svetainę naudodamas ne SSL URL, jis turi būti nukreiptas į SSL svetainę.
- Peradresuokite į SSL URL naudodami Apache mod_rewrite modulį.
- Jei naudojate LAMP vieno spustelėjimo diegimo paketą, integruotą automatinį SSL sertifikato diegimą ir priverstinį peradresavimą į HTTPS, peradresavimą į HTTPSGalioja, jums nereikia pridėti HTTPS peradresavimo.
Pridėti peradresavimo taisyklę
- „Apache“ konfigūracijos faile redaguokite svetainės virtualųjį prieglobą ir pridėkite šiuos nustatymus.
- Taip pat galite įtraukti tuos pačius parametrus į dokumento šaknį savo svetainėje .htaccess faile.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Jei tiesiog norite nurodyti tam tikrą URL, kurį norite peradresuoti į HTTPS:
RewriteEngine On RewriteRule ^message$ https://www.etufo.org/message [R=301,L]
- Jei kas nors bandys prieiti žinutė , puslapis pereis į https, o vartotojas gali pasiekti URL tik naudodamas SSL.
Iš naujo paleiskite „Apache“, kad .htaccess failas įsigaliotų:
service httpd restart
注意 事项
- Pakeiskite aukščiau nurodytą el. pašto adresą į savo el. pašto adresą.
- Nepamirškite pakeisti anksčiau pateikto svetainės domeno pavadinimo į savo svetainės domeno pavadinimą.
Peradresavimo taisyklės vietos problema
Kai peradresavimo taisykles dedate į pseudostatines taisykles, dažnai susidursite su problema, kad HTTP negali peradresuoti visos svetainės į HTTPS.
Iš pradžių peradresavimo kodą nukopijavome į .htaccess ir jis bus rodomas šiais atvejais ▼
![Peradresavimo taisyklė [L] pateikta aukščiau. Peradresavimo taisyklė [L] pateikta aukščiau.](https://img.chenweiliang.com/2018/03/https-rule-1.png)
- [L] rodo, kad dabartinė taisyklė yra paskutinė, nustokite analizuoti šias perrašymo taisykles.
- Taigi, kai pasiekiate peradresuoto straipsnio puslapį, [L] sustabdo šią taisyklę, todėl peradresavimo taisyklė neveikia.
Kai pasiekiamas HTTP pagrindinis puslapis, norime sukelti URL peradresavimą, apeinant URL perrašymo taisykles, kad būtų įvykdytos peradresavimo taisyklės, jog visa svetainė būtų peradresuojama iš HTTP į HTTPS.
Nedėkite HTTPS peradresavimo taisyklių po [L] taisyklėmis; įdėkite jas virš [L] taisyklių. ▼
![Pseudostatinės SSL peradresavimo taisyklės [L] pateiktos žemiau. Pseudostatinės SSL peradresavimo taisyklės [L] pateiktos žemiau.](https://img.chenweiliang.com/2018/03/pseudo-static-ssl-jump.png)
Papildoma literatūra:
- Kuo skiriasi http ir https? Išsamus SSL šifravimo proceso paaiškinimas
- Ką daryti, jei CWP valdymo skydelyje įdiegus Let's Encrypt SSL sertifikatą gaunu 500 klaidą?
- Automatiškai pereiti prie antrojo lygio domeno vardo be www aukščiausio lygio domeno pavadinimo: šakninis domeno pavadinimas 301 peradresuoja www
Tikiuosi, kad straipsnis „Kaip pateikti paraišką „Let's Encrypt“? „Let's Encrypt“ nemokamų SSL sertifikatų principai ir diegimo pamoka“, kuriuo pasidalinta Chen Weiliang tinklaraštyje ( https://www.chenweiliang.com/ ), jums bus naudingas.
Nedvejodami pasidalinkite šio straipsnio nuoroda: https://www.chenweiliang.com/cwl-512.html
