Мақала анықтамалығы
Let's Encrypt бағдарламасына қалай өтініш беруге болады?
SSL сертификатының қағидасын және орнату оқулығын шифрлейік
SSL дегеніміз не? Чен Вэйлян бұл туралы өзінің алдыңғы мақаласында « HTTP және HTTPS арасындағы айырмашылық неде? SSL шифрлау процесінің егжей-тегжейлі түсіндірмесі » атты мақаласында талқылаған .
Кеңейтілген шифрланған SSL сертификаттарын сатып алуы керек электрондық коммерция веб-сайттарынан басқа , WeChat ресми аккаунттарын жарнамалау үшін веб-сайттарды пайдаланатын жаңа медиа мамандары тегін шифрланған SSL сертификаттарын орната алады. Бұл SEO- ға көмектеседі және веб-сайттың іздеу жүйелеріндегі кілт сөздер рейтингін жақсартады.

Let's Encrypt бағдарламасының өзіндік жұмыс процесі бар ( https://certbot.eff.org/ ). Linux пайдаланушылары сол жұмыс процесіне сілтеме жасап, осы нұсқаулықты орындай алады.
Алдымен certbot-auto құралын жүктеп алыңыз, содан кейін құралдың орнату тәуелділіктерін іске қосыңыз.
wget https://dl.eff.org/certbot-auto --no-check-certificate chmod +x ./certbot-auto ./certbot-auto -n
SSL сертификатын жасаңыз
Келесі, Чен Вэйлянның блог домен атауын мысал ретінде алып , оны өз қажеттіліктеріңізге сәйкес өзгертіп, SSH арқылы келесі пәрменді орындаңыз.
Пәрменді өзгертуді ұмытпаңыз:
- Пошта жәшігі
- сервер жолы
- веб-сайттың домен атауы
Бір доменнің жалғыз каталогы, сертификат жасаңыз:
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com
Көп доменді бір каталог, сертификат жасау: (яғни, бірнеше домендік атаулар, бір каталог, бірдей сертификатты пайдалану)
./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
Жасалған SSL сертификаты мына жерде сақталады:/etc/letsencrypt/live/www.chenweiliang.com/ Мазмұн астында.
Бірнеше домендік атаулар және бірнеше каталогтар, сертификат жасайды: (яғни, бірнеше домендік атаулар, бірнеше каталогтар, бір сертификатты пайдаланыңыз)
./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
Let's Encrypt сертификаты сәтті орнатылғаннан кейін SSH жүйесінде келесі шақыру хабары пайда болады:
МАҢЫЗДЫ ЕСКЕРТПЕЛЕР:
– Құттықтаймыз!Сіздің сертификатыңыз және chain сақталды:
/etc/letsencrypt/live/www.chenweiliang.com/fullchain.pem
Сіздің негізгі файлыңыз мына жерде сақталды:
/etc/letsencrypt/live/www.chenweiliang.com/privkey.pem
Сіздің сертификатыңыздың мерзімі 2018 жылы аяқталады. Жаңа немесе өзгертілген сертификат алу үшін
болашақта осы сертификаттың нұсқасын certbot-auto іске қосыңыз
Сертификаттардың *барлығын* интерактивті емес жаңарту үшін іске қосыңыз
«certbot-автоматты жаңарту»
- Егер сізге Certbot ұнаса, біздің жұмысымызды қолдауды өтінеміз:
ISRG / Let's Encrypt-ке қайырымдылық жасау: https://letsencrypt.org/donate
EFF-ке қайырымдылық жасау: https://eff.org/donate-le
SSL сертификатын жаңарту
Сертификатты жаңарту да өте ыңғайлы, автоматты түрде жаңарту үшін crontab пайдаланыңыз . Crontab орнатылмаған кейбір Debian нұсқалары үшін оны алдымен қолмен орнатуға болады.
apt-get install cron
Nginx және apache үшін келесі командалар /etc/crontab файлына енгізіледі, яғни олар әр 10 күн сайын жаңартылып отырады және 90 күндік жарамдылық мерзімі жеткілікті.
Nginx crontab файлына мыналарды қосыңыз:
0 3 */10 * * /root/certbot-auto renew --renew-hook "/etc/init.d/nginx reload"
Apache crontab файлын қосыңыз:
0 3 */10 * * /root/certbot-auto renew --renew-hook "service httpd restart"
SSL сертификаты Apache конфигурациясы
Енді Apache конфигурациясына өзгертулер енгізу керек.
Кеңестер:
- пайдалансаңызCWP басқару тақтасы, Домен атауын қосу құсбелгісінде SSL сертификатын автоматты түрде жасау, ол Apache үшін SSL сертификатын автоматты түрде конфигурациялайды.
- Келесі қадамдардың көбін орындасаңыз, Apache қайта іске қосылғаннан кейін қате орын алуы мүмкін.
- Қате болса, қолмен қосқан конфигурацияны жойыңыз.
httpd.conf файлын өңдеңіз ▼
/usr/local/apache/conf/httpd.conf
▼ табыңыз
Listen 443
- (алдыңғы пікір нөмірін алып тастаңыз №)
немесе 443 тыңдау портын қосыңыз ▼
Listen 443
SSH Apache тыңдау портын тексеру ▼
grep ^Listen /usr/local/apache/conf/httpd.conf
▼ табыңыз
mod_ssl
- (алдыңғы пікір нөмірін алып тастаңыз №)
немесе ▼ қосыңыз
LoadModule ssl_module modules/mod_ssl.so
▼ табыңыз
httpd-ssl
- (алдыңғы пікір нөмірін алып тастаңыз №)
Содан кейін, SSH келесі пәрменді орындаңыз (жолды өзіңізге өзгерту үшін ескеріңіз):
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
Келесі, сіз жасаған веб-сайт үшін Apache конфигурациясының соңында, </VirtualHost> астында.
SSL бөлімінің конфигурация файлын қосыңыз (түсініктемені жою үшін ескеріңіз және жолды өзіңізге өзгертіңіз):
<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>
Соңында Apache-ді қайта іске қосыңыз:
service httpd restart
Apache HTTP қайта бағыттауды HTTPS жүйесіне мәжбүрлейді
- Көптеген веб-сұраулар әрқашан тек SSL арқылы жұмыс істей алады.
- Біз SSL пайдаланған сайын веб-сайтқа SSL арқылы кіру керек екеніне көз жеткізуіміз керек.
- Кез келген пайдаланушы веб-сайтқа SSL емес URL мекенжайымен кіруге әрекеттенсе, оны SSL веб-сайтына қайта бағыттау керек.
- Apache mod_rewrite модулін пайдаланып SSL URL мекенжайына қайта бағыттаңыз.
- Бір рет басу арқылы LAMP орнату бумасын пайдалану, SSL сертификатының кірістірілген автоматты орнатуы және HTTPS-ке мәжбүрлі қайта бағыттау, HTTPS-ке қайта бағыттауКүші бар, HTTPS қайта бағыттауын қосудың қажеті жоқ.
Қайта бағыттау ережесін қосыңыз
- Apache конфигурация файлында веб-сайттың виртуалды хостын өңдеңіз және келесі параметрлерді қосыңыз.
- Сондай-ақ, .htaccess файлындағы веб-сайтыңыздағы құжат түбіріне бірдей параметрлерді қосуға болады.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]HTTPS-ке қайта бағыттау үшін белгілі бір URL мекенжайын көрсеткіңіз келсе:
RewriteEngine On RewriteRule ^message$ https://www.etufo.org/message [R=301,L]
- Егер біреу кіруге тырысса хабар , бет https мекенжайына өтеді және пайдаланушы URL мекенжайына тек SSL арқылы қол жеткізе алады.
.htaccess файлы күшіне енуі үшін Apache бағдарламасын қайта іске қосыңыз:
service httpd restart
Сақтық шаралары
- Жоғарыдағы электрондық пошта мекенжайын электрондық пошта мекенжайыңызға өзгертіңіз.
- Жоғарыдағы веб-сайттың домендік атауын веб-сайтыңыздың домендік атына өзгертуді ұмытпаңыз.
Қайта бағыттау ережесінің орны мәселесі
Қайта бағыттау ережелерін псевдостатикалық ережелердің астына орналастырған кезде, HTTP бүкіл сайтты HTTPS-ке қайта бағыттай алмайтын мәселеге жиі тап боласыз.
Бастапқыда біз қайта бағыттау кодын .htaccess ішіне көшірдік және ол келесі жағдайларда пайда болады ▼
![Қайта бағыттау ережесі [L] жоғарыда көрсетілген. Қайта бағыттау ережесі [L] жоғарыда көрсетілген.](https://img.chenweiliang.com/2018/03/https-rule-1.png)
- [L] ағымдағы ереженің соңғы ереже екенін көрсетеді, келесі қайта жазу ережелерін талдауды тоқтатыңыз.
- Сондықтан қайта бағытталған мақала бетіне қатынасу кезінде [L] келесі ережелерді тоқтатады, сондықтан қайта бағыттау ережелері жұмыс істемейді.
HTTP басты бетіне кірген кезде, біз URL қайта бағыттауды іске қосқымыз келеді, қайта бағыттау ережелерін орындау үшін URL қайта жазу ережелерін айналып өтіп, бүкіл сайтты HTTP-ден HTTPS-ке қайта бағыттауға болады.
HTTPS қайта бағыттау ережелерін [L] ережелерінің астына қоймаңыз ; оларды [L] ережелерінің үстіне қойыңыз. ▼
![Псевдостатикалық SSL қайта бағыттау ережелері [L] төменде келтірілген. Псевдостатикалық SSL қайта бағыттау ережелері [L] төменде келтірілген.](https://img.chenweiliang.com/2018/03/pseudo-static-ssl-jump.png)
Кеңейтілген оқу:
- Http мен https арасындағы айырмашылық неде? SSL шифрлау процесінің егжей-тегжейлі түсіндірмесі
- CWP басқару тақтасында Let's Encrypt SSL сертификатын орнатқаннан кейін 500 қатесін алсам не істеуім керек?
- www жоғарғы деңгейлі домен атауынсыз екінші деңгейлі домендік атқа автоматты түрде өту: түбірлік домен атауы 301 www қайта бағыттайды
Чен Вэйлиангтың блогында ( https://www.chenweiliang.com/ ) бөлісілген «Let's Encrypt бағдарламасына қалай өтініш беруге болады? Let's Encrypt тегін SSL сертификаттарының принциптері мен орнату бойынша нұсқаулық» мақаласы сізге пайдалы болады деп үміттенемін.
Осы мақаланың сілтемесін бөлісуден тартынбаңыз: https://www.chenweiliang.com/cwl-512.html
