Жаппай https протоколына өту: Let's Encrypt арқылы ssl сертификат аламыз (тегін)
- raimbek
- Ақпараттық қауіпсіздік / 18 наурыз 2017, 14:49
- 4062
Осы жылдың қаңтарынан бастап Google http протоколымен жұмыс жасайтын сайттарды "қорғалмаған" деп атап, браузерде де тиісінше белгілейтінін айтқан болатын. Әрине, бұл күшпен https протоколына барлық сайттарды ауыстыру емес, әлде де ешкімді күшпен ауыстыру ниеттері жоқ. Дегенмен, бұл протоколға өту пайдаланушылар үшін де сайт иелері үшін де дұрыс қадам.
Google компаниясының күштеуін алып тастағанның өзінде, https мәліметтерді қорғау және олардың үшінші жақтың қолына түспеуіне септігін тигізеді. Үлкен платформалар, банктер әлдеқашан осы протокол арқылы жұмыс жасайды (егер жасамаса ол ұйымнан төрт аяқтап қашқан дұрыс). Ал қарапайым сайттар не істемек? Егер https://www.rapidssl.com/buy-ssl/ сайтын қарайтын болсақ, ssl сертификат $59, ал wildcard қажет болса $249. Сертификаттар бір жылға беріледі. Иә, сайттың бір жылдық хостинг пен домен құнынан да қымбат.
Қарапайым сайттар үшін жақсы шешім ол https://letsencrypt.org CA орталығы ұсынған тегін сертификаттар. Wildcard қолдамайтыны болмаса, ақшалай сертификаттардан ешқандай кемшілігі жоқ. https://letsencrypt.org ол ашық ұйым, интернетті қауіпсіз ету үшін жұмыс жасайды және оның көмегімен 3 айлық сертификаттарды алуға болады, әр үш ай сайын сертификаттарды жаңартып отыру қажет. Әрине, тегін болған соң сертификаттарды алуға бір екі жұмыс жасау қажет. Ең басты шарт, доменде істеп тұрған сайтыңыздың болуы.
Байқаған болсаңыздар codeo сайты да https арқылы істеп тұр, сертификат letsencrypt арқылы алынды.
Сертификаттарды генерациялау үшін https://certbot.eff.org/ бағдарламасы пайдаланылады. Сайтқа өтіп, қажет дистрибутивті таңдап, орнатып алу керек. Менде Ubuntu 16.04, бұл нұсқада бағдарлама "letsencrypt" аталады:
Қалған көпшілік дистрибутивтарда ол "certbot" деп аталады. Орнатқан соң сертификат алуды бастаймыз:
Кейін мынадай терезе ашылып, сайтыңыздың доменін енгізесіз:
IP адресіңіз жазылып қалынады, оны құптайсыз ба деген сұраныс терезеде "Allow" деңіз:
Осы қадамдардан соң терминалда мынадай мәлімет пайда болады:
Бірінші көрсетілген сілтемеге өткенде, төменірек тұрған хэш қайтарылуы керек. Ол үшін ftp арқылы хостингкта қажетті папкалар мен файлдарды құрып, ішіне хэш текстті жазып қою қажет. Бұл әрекетпен сіз сайт сіздікі екенін дәлелдейсіз және басқалар осындай доменмен сертификат ала алмайды. Кейін барып ENTER-ді басыңыз.
Егер барлығын дұрыс істеген болсаңыз мынандай құттықтау текст шығады, ал сертификаттар /etc/letsencrypt/archive/codeo.kz папкасында болады.
Енді бұл сертификаттарды сайтта немесе басқа мақсаттарда (почта) еркін қолдана бере аламыз. Тек үш айдан соң жаңартуды ұмытпасақ болғаны. Мысалы, codeo.kz сайты ps.kz-те орналасқан. Сертификаттарды төмендегі скриншоттағыдай жүктей аласыз:
Ең қызығы көптеген хостинг провайдерлер letsencrypt-ті еш қиындықсыз қолдануға мүмкіндік береді. Біздің ps.kz-те де ол үшін арнайы батырма бар, тек жұмыс жасамайды. Одан да сертификаттарды сатуды жөн көрген болар :)
Егер сізде vps болса, certbot автоматты түрде сертификатты жаңарта алады (cron көмегімен). Ең басты кемшілік wildcard жоқтығында. Сондықтан, әр үшінші дәрежелі домен пайда болған сайын сертификатты қайта алуға тура келеді.
Соңында https протоколын міндетті етуді ұмытпаңыз (.htaccess файлы) :
HTTPS өткен соң сайтта ешқандай http сілтемелер болмауын қадағалау керек (js, css және суреттер), әйтпесе браузерлер сайтты қорғалмаған деп есептейді.
Google компаниясының күштеуін алып тастағанның өзінде, https мәліметтерді қорғау және олардың үшінші жақтың қолына түспеуіне септігін тигізеді. Үлкен платформалар, банктер әлдеқашан осы протокол арқылы жұмыс жасайды (егер жасамаса ол ұйымнан төрт аяқтап қашқан дұрыс). Ал қарапайым сайттар не істемек? Егер https://www.rapidssl.com/buy-ssl/ сайтын қарайтын болсақ, ssl сертификат $59, ал wildcard қажет болса $249. Сертификаттар бір жылға беріледі. Иә, сайттың бір жылдық хостинг пен домен құнынан да қымбат.
Қарапайым сайттар үшін жақсы шешім ол https://letsencrypt.org CA орталығы ұсынған тегін сертификаттар. Wildcard қолдамайтыны болмаса, ақшалай сертификаттардан ешқандай кемшілігі жоқ. https://letsencrypt.org ол ашық ұйым, интернетті қауіпсіз ету үшін жұмыс жасайды және оның көмегімен 3 айлық сертификаттарды алуға болады, әр үш ай сайын сертификаттарды жаңартып отыру қажет. Әрине, тегін болған соң сертификаттарды алуға бір екі жұмыс жасау қажет. Ең басты шарт, доменде істеп тұрған сайтыңыздың болуы.
Байқаған болсаңыздар codeo сайты да https арқылы істеп тұр, сертификат letsencrypt арқылы алынды.
Сертификаттарды генерациялау үшін https://certbot.eff.org/ бағдарламасы пайдаланылады. Сайтқа өтіп, қажет дистрибутивті таңдап, орнатып алу керек. Менде Ubuntu 16.04, бұл нұсқада бағдарлама "letsencrypt" аталады:
$ sudo apt-get install letsencrypt
Қалған көпшілік дистрибутивтарда ол "certbot" деп аталады. Орнатқан соң сертификат алуды бастаймыз:
$ sudo letsencrypt certonly --manual
Кейін мынадай терезе ашылып, сайтыңыздың доменін енгізесіз:
IP адресіңіз жазылып қалынады, оны құптайсыз ба деген сұраныс терезеде "Allow" деңіз:
Осы қадамдардан соң терминалда мынадай мәлімет пайда болады:
Бірінші көрсетілген сілтемеге өткенде, төменірек тұрған хэш қайтарылуы керек. Ол үшін ftp арқылы хостингкта қажетті папкалар мен файлдарды құрып, ішіне хэш текстті жазып қою қажет. Бұл әрекетпен сіз сайт сіздікі екенін дәлелдейсіз және басқалар осындай доменмен сертификат ала алмайды. Кейін барып ENTER-ді басыңыз.
Егер барлығын дұрыс істеген болсаңыз мынандай құттықтау текст шығады, ал сертификаттар /etc/letsencrypt/archive/codeo.kz папкасында болады.
Енді бұл сертификаттарды сайтта немесе басқа мақсаттарда (почта) еркін қолдана бере аламыз. Тек үш айдан соң жаңартуды ұмытпасақ болғаны. Мысалы, codeo.kz сайты ps.kz-те орналасқан. Сертификаттарды төмендегі скриншоттағыдай жүктей аласыз:
Ең қызығы көптеген хостинг провайдерлер letsencrypt-ті еш қиындықсыз қолдануға мүмкіндік береді. Біздің ps.kz-те де ол үшін арнайы батырма бар, тек жұмыс жасамайды. Одан да сертификаттарды сатуды жөн көрген болар :)
Егер сізде vps болса, certbot автоматты түрде сертификатты жаңарта алады (cron көмегімен). Ең басты кемшілік wildcard жоқтығында. Сондықтан, әр үшінші дәрежелі домен пайда болған сайын сертификатты қайта алуға тура келеді.
Соңында https протоколын міндетті етуді ұмытпаңыз (.htaccess файлы) :
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ <a href="https://codeo.kz/$1">https://codeo.kz/$1</a> [R=301,L]
HTTPS өткен соң сайтта ешқандай http сілтемелер болмауын қадағалау керек (js, css және суреттер), әйтпесе браузерлер сайтты қорғалмаған деп есептейді.
-
+1