Let’s Encrypt SSL сертификат и постављање https-a преко cPanel-a
HTTPS је скраћеница од Hyper text Трансфер Protocol Secure и у суштини представља комбинацију стандардног HTTP протокола са SSL/TLS протоколом како би се саобраћај од клијента до сервера осигурао од шпијунирања и фалсификовања.
What бре? Укратко – саобраћај између вас и веб сервера није у „plaintext“ формату већ је шифрован – тако да ако рецимо уносите у некој forми своју адресу, број телефона, број картице – нико између вас и сајта то неће моћи тако лако упецати.
ИНФО: Овај текст је написан кад Let’s Encrypt није био у широкој употреби (био је у бета фази). Сад је ово све аутоматизовано на великом броју cPanel инстанци.
Нигде нисам могао да нађем неко боље упутство за пребацивање сајта (било ког сајта) са HTTP-а на HTTPS преко cPanelа…мислио сам да је то нека зајебана наука чим се нико не бави тиме…испоставило се да није.
Наравно, ако не желите ви да се зајебавате са овим инсталацијама и чудима или вам се баш и не ради продужавање сертификата свака три месеца можете сертификате купити код неког озбиљнијег продавца, компаније Нинет рецимо у коју имам пуно поверење и људи из њихове техничке подршке ће вам сертификат инсталирати без капи зноја.
Добре стране коришћења Let’s Encrypt SSL сертификата: Бесплатан за било какву употребу, нисам приметио неке проблеме са њим
Лоше стране коришћења Let’s Encrypt SSL сертификата: Још увек је у бета фази што значи да се могу (не мора да значи и да ће их бити) очекивати неки крахови и сертификат мора да се обнавља свака 3 месеца. Још једна лоша страна је за људе који нису из струке поприлично компликована процедура – што у принципу икоме озбиљнијем није.
Корак 0: https://gethttpsforfree.com/
Сајт који је колико толико аутоматизовао генерисање Let’s Encrypt сертификата, тако да не морате да инсталирате клијент на свом рачунару, већ можете на овом сајту одрадити велику већину ствари. Први пут ће вам за израду и инсталацију сертификата требати мало више времена јер вам све ново (ако нисте ово раније радили) – али је у принципу то посао од 5 минута. Дакле….стартујемо виртуалну машину на којој је мој омиљени ЦентОС 6 и качимо се на њу преко PuTTY-ја као root корисник а са својим компом одлазимо на веб адресу https://gethttpsforfree.com/ па крећемо од…
Корак 1 – Account Info
- Унесите вашу имејл адресу
- Кликните на линк (how do I generate this?)
- Команде које вам пишу доле – окините на вашој виртуалној машини преко PuTTY-ja…i оно што вам се испише из друге команде…
- …копипејстујте у Account Public Key и
- Кликните на Validate Account Info…ако је све ок осписаће вам се порука „Looks good! Proceed to Step 2!“
Корак 2 – CSR са вашег cPanel-а
Сад идем на cPanel да бих генерисао CSR који ћу да прекопирам у поље из корака 2 са gethttpsforfree.com…дакле….идем на darkodrazovic.in.rs/cPanel, логујем се, па на SSL/TLS Manager па на Certificate Signing Requests (CSR) и ту кликнем на Generate, view, or delete SSL certificate signing requests па доле под „Generate а New Certificate“ попуњавам домене на које ће се односити сертификат (darkodrazovic.in.rs), City (Belgrade), State (Serbia), Country (RS – Serbia), Company (DarkoDrazovic.in.rs), Company Division (NA), Email (info@kompjuteras.сом), Description (NA) и кад то попуним кликем на Generate
…а вредност коју добијам под ENCODED CERTIFICATE копирам…
…па пејстујем у корак два на https://gethttpsforfree.com/ па кликнем на VALIDATE CSR. Ако сте све урадили како треба, писаће вам „Found Domains…..“
Корак 3 – API Request
У кораку 3 требате буквално да у PuTTY-ju којим сте се накачили на виртуалну машину окинете команду која вам је наведена….и да оно што вам она испише прекопирате у поље испод команде….и тако 3 пута…па кликнете на Validate Signatures
Корак 4 – Verify Ownership
Сад долазите до дела кад треба да докажете да сте ви власник тог сајта….
- Као у претходним корацима – у PuTTY-ju окините команду испод „Run this signature….“ и то што добијете преко PuTTY-ja прекопирајте у поље испод
- Кликните на „Option 2 – file-based“ па
- Преко cPanel-а (или неког FTP клијента) на локацију која вам је наведена у пољу „Under this url“ (мораћете да креирате неке додатне фолдере) направите фајл који се зове као на крају урла – па тај фајл едитујте и у њега упишите оно што ти пише испод „Serve this content“ па сачувајте…и кад сачувате…
- Кликните на „I’m now serving this file….“
Ако сте то правилно одрадили писаће вам „Domain verified“
Корак 5 – Инсталација SSL сертификата на cPanel
Прекопирате оно што видите у пољу „Signed Certificate“……
….па одете на ваш cPanel, кликнете на „Generate, view, upload, or delete SSL certificate“
….па ту, у пољу „Paste your certificate below“ пејстујете ово што сте горе копирали…и кликнeте на Save Certificate. Приметићете испод овога што сте копирали да се појавио ваш сајт, податак о томе колико сертификат важи и слично…
Ако је све ОК – добићете поруку на cPanel-у да је сертификат сачуван
Сад тај сачувани сертификат треба инсталирати. Идите на вашем cPanel-у на „Install and Manage SSL for your site“ и кликните на „Manage SSL sites“
…из падајућег менија изаберите домен на који постављате HTTPS па кликните на „Browse Certificates“…
…и изаберите сертификат који сте сачували (у овом случају за домен darkodrazovic.in.rs) па кликните на „Use sertificate“
…па се вратите на gethttpsforfree.com и оно што вам се налази у пољу „Intermediate Certificate“ копирајте….
….и пејстујте на вашем cPanel-у у поље „Certificate Authority Bundle (CA BUNDLE) и кликните на Install Certificate
Добићете поруку да је сертификат успешно инсталиран – и тиме је ваш посао око постављања SSL сертификата завршен
Сад идите на сајт за који сте поставили https и испробајте да ли ради….видећете знак узвичника ако на страници има фотографија које се вуку са HTTP-а уместо са HTTPS-а…али ћемо то решити у следећем кораку….
Измена линкова у Вордпресу
Сад треба да поставите да сви интерни линкови буду иза HTTPS-а као и да сви досадашњи ликови које сте шеровали по друштвеним мрежама буду „редиректовани“ на HTTPS. Прво што треба да урадите јесте да измените фајл .htaccess који се налази у root-у вашег сајта и да му додатe следеће линије
<IfModule mod_rewrite.cmod_rewrite.c>gt; RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://vassajt.com/\ [R,L] </IfModule>
Дакле овако изгледа у htaccess фајлу та измена, везана за darkodrazovic.in.rs и после чувања фајла….сви линкови који су ишли на http://darko……in.rs/неки_линк сад иду на https://darko…..in.rs/неки_линк и на који год интерни линк да кликнете на сајту – водиће вас на https
Сад остаје део око замене свих http://darkodrazovic линкова у бази. Пре било чега – направите бекап MySQL базе (може преко cPanel-a).
Можда није баш по правилу службе, али ја то реименовање линкова радим преко скрипе скинуте са https://interconnectit.com која се зове Search and Replace DB. Дакле, скинете последњу верзију програма, upload-ујете тај зип на root сајта, распакујете (у cPanel-у, десни клик и Extract) и реименујете фолдер у несто слабије препознатиљиво (ја сам га реименовао у aaaddd)…потом у свој browser укуцавам: https://darkodrazovic.in.rs/aaaddd
- REPLACE стари url WITH нови url
- Dry Run – како бих видео где ће све промене бити примењене
- Live Run – како бих реименовао све линкове са старог на нови url
Кад се процес заврши, можете одрадити исто за сваки случају и са реименовање http://www.darkodrazovic у https://darkodrazovic можда се неки линк од раније вуче а да није исти (дакле сви интерни линкови би требало да буду или https://сајт.com или https://www.sajt.com).
Кад је овај посао завршен, ОБРИШИТЕ ФОЛДЕР (у овом случају фолдер aaaddd), можда ћете морати да обришете и кеш (ако користите неки WordPress додатак за кеширање) и идите на сајт да видите има ли и даље знака узвичника на URL-у. У нашем случају нема.
А ако кликнете на катанац имаћете кратак инфо да је ваша конекција са сајтом безбедна
Тиме је посао постављања SSL сертификата завршен за ваш блог или сајт. Не заборавите само, да Let’s Encrypt сертификат сад, ценим док не изађе из Public Beta фазе, морате обнављати свака 3 месеца, тако да поставите себи неки подсетник, у Гугл календару, или шта већ користите како подсетник. Дакле сад, ако бисте оставили неки поверљиви податак у некој форми тамо на сајту – нико између веб сервера и вас не би могао да га упеца….ако бисте оставили коментар на блогу, уљез би само видео да сте успоставили конекцију са сајтом, не и који сте коментар оставили, коју сте мејл адресу унели и слично. Имајте у виду да је Let’s Encrypt и даље у бета фази, као и да сајт darkodrazovic.in.rs није на dedicated/VPS-у па се не може утицати баш на све.
Popara
12/12/2015 @ 18:45
Sjajno, dakle sad i zaraženi treš sajtovi mogu da ulivaju osećaj sigurnosti sa https-om
Luka
14/12/2015 @ 15:53
Takvi sajtovi ce svakako dobiti oznaku kao nebezbedni od strane browsera ili tvog antivirusnog softvera, bez obzira na to koji protokol koriste.
Luka
14/12/2015 @ 15:52
Svaka cast!
samo bih dodao da ako zelite ovo da koristite na nivou cPanel servera (za hosting firme), onda treba verifikaciju domena malo promeniti, oni folderi se naprave unutar ‘/usr/local/apache/htdocs/’.
Dejan
09/05/2017 @ 13:01
da li postoji mogućnost da dopuniš ovo uputstvo za opcijom za automatsko produžavanje certifikata?
Takođe, ovaj nulti korak ja malo nejasan…
Hvala
Компјутераш блог
09/05/2017 @ 14:44
Ако некад реактивирам блог можда допуним. Иначе, ово ти је сад већ непотребно упутство, с обзиром да већима провајдера који имају cPanel имају free https са аутоматском обновом. Ово је било писано док те могућности није постојало
Dejan
09/05/2017 @ 21:30
Hvala na odgovoru.
Ovaj moj Site5 hosting na kome sam već dugo korisnik, naravno imaju cPanel ali eksplicitno zabranjuju Lets Encrypt (LE) certifikat a nemaju free.
Ja sam nekako uspio da samostalno postavim LE koristeći https://www.sslforfree.com/ koji opet koristi ovaj SE. Ali kad sam vidio ovo tvoje uputstvo, jako sam se obradovao.
Na žalost zapeo sam na ovom nultom koraku. Taman da sam ga i uradio, opet imam problem oko automatske obnove. Malo sam potražio na netu, navodno imaju 2 opcije. Jedna preko cPanel plugina https://documentation.cpanel.net/display/CKB/The+Let%27s+Encrypt+Plugin#84bd3e23cdc240daa41a13221c8f9be5
a druga preko crone joba.
E sada, obzirom da ova prva u mom slučaju otpada, jer nemam pristup do root-a na mom hostig servisu, onda izgleda da je cron job jedina opcija.
Trenutno nisam u mogucnosti da menjam hosting tako da sam do kraja godine prinudjen…
Ima li šanse da mi malo pomogneš u ovome…
Hvala
Dejan Banjaluka
Dejan
23/06/2017 @ 23:16
Sad ostaje deo oko zamene svih http://darkodrazovic linkova u bazi. Pre bilo čega – napravite bekap MySQL baze (može preko CPanela).
Možda nije baš po PS-u, ali ja taj rename linkova radim preko skripe skinute sa https://interconnectit.com koja se zove Search and Replace DB. Dakle, skinete poslednju verziju programa, uploadujete taj zip na root sajta, raspakujete (u CPanelu, desni klik i Extract) i reimenujete folder u nesto slabije prepoznatiljivo (ja sam ga reimenovao u aaaddd)…potom u svoj browser ukucavam: https://darkodrazovic.in.rs/aaaddd
Ovo sve je za WP, ima li sta za Joomla-u