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 сертификат који је додуше још увек у бета фази – али ради нормално…на један Вордпрес сајт, у овом примеру на мој лични сајт darkodrazovic.in.rs (сертификат ће бити валидан 3 месеца па ћу га деинсталирати 01/03/2016) преко cPanelа и од „додатне опреме“ ће нам сем приступа cPanel-у требати и један бесплатни ЦентОС покренут под бесплатним VirtualBox-oм…

Наравно, ако не желите ви да се зајебавате са овим инсталацијама и чудима или вам се баш и не ради продужавање сертификата свака три месеца можете сертификате купити код неког озбиљнијег продавца, компаније Нинет рецимо у коју имам пуно поверење и људи из њихове техничке подршке ће вам сертификат инсталирати без капи зноја.

Добре стране коришћења 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

  1. Унесите вашу имејл адресу
  2. Кликните на линк (how do I generate this?)
  3. Команде које вам пишу доле – окините на вашој виртуалној машини преко PuTTY-ja…i оно што вам се испише из друге команде…
  4. …копипејстујте у Account Public Key и
  5. Кликните на Validate Account Info…ако је све ок осписаће вам се порука „Looks good! Proceed to Step 2!“

Корак 1

Корак 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

CSR

…а вредност коју добијам под ENCODED CERTIFICATE копирам…

CSR прекопирати

…па пејстујем у корак два на https://gethttpsforfree.com/ па кликнем на VALIDATE CSR. Ако сте све урадили како треба, писаће вам „Found Domains…..“

CSR Валидиран

Корак 3 – API Request

У кораку 3 требате буквално да у PuTTY-ju којим сте се накачили на виртуалну машину окинете команду која вам је наведена….и да оно што вам она испише прекопирате у поље испод команде….и тако 3 пута…па кликнете на Validate Signatures

API

Овако то треба да изгледа
Овако то треба да изгледа

Корак 4 – Verify Ownership

Сад долазите до дела кад треба да докажете да сте ви власник тог сајта….

  1. Као у претходним корацима – у PuTTY-ju окините команду испод „Run this signature….“ и то што добијете преко PuTTY-ja прекопирајте у поље испод
  2. Кликните на „Option 2 – file-based“ па
  3. Преко cPanel-а (или неког FTP клијента) на локацију која вам је наведена у пољу „Under this url“ (мораћете да креирате неке додатне фолдере) направите фајл који се зове као на крају урла – па тај фајл едитујте и у њега упишите оно што ти пише испод „Serve this content“ па сачувајте…и кад сачувате…
  4. Кликните на „I’m now serving this file….“

Verify Ownership

Ако сте то правилно одрадили писаће вам „Domain verified“

Domain verified

Корак 5 – Инсталација SSL сертификата на cPanel

Прекопирате оно што видите у пољу „Signed Certificate“……

….па одете на ваш cPanel, кликнете на „Generate, view, upload, or delete SSL certificate“

….па ту, у пољу „Paste your certificate below“ пејстујете ово што сте горе копирали…и кликнeте на Save Certificate. Приметићете испод овога што сте копирали да се појавио ваш сајт, податак о томе колико сертификат важи и слично…

Ако је све ОК – добићете поруку на cPanel-у да је сертификат сачуван

Сертификат успешно upload-ован

Сад тај сачувани сертификат треба инсталирати. Идите на вашем cPanel-у на „Install and Manage SSL for your site“ и кликните на „Manage SSL sites“

…из падајућег менија изаберите домен на који постављате HTTPS па кликните на „Browse Certificates“…

Install SSL сертифицате

…и изаберите сертификат који сте сачували (у овом случају за домен darkodrazovic.in.rs) па кликните на „Use sertificate“

…па се вратите на gethttpsforfree.com и оно што вам се налази у пољу „Intermediate Certificate“ копирајте….

….и пејстујте на вашем cPanel-у у поље „Certificate Authority Bundle (CA BUNDLE) и кликните на Install Certificate

Добићете поруку да је сертификат успешно инсталиран – и тиме је ваш посао око постављања SSL сертификата завршен

Сад идите на сајт за који сте поставили https и испробајте да ли ради….видећете знак узвичника ако на страници има фотографија које се вуку са HTTP-а уместо са HTTPS-а…али ћемо то решити у следећем кораку….

Изглед сајта под HTTPS-ом

Измена линкова у Вордпресу

Сад треба да поставите да сви интерни линкови буду иза HTTPS-а као и да сви досадашњи ликови које сте шеровали по друштвеним мрежама буду „редиректовани“ на HTTPS. Прво што треба да урадите јесте да измените фајл .htaccess који се налази у root-у вашег сајта и да му додатe следеће линије

<IfModule mod_rewrite.cmod_rewrite.c>gt;
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://vassajt.com/$1 [R,L]
</IfModule>

Дакле овако изгледа у htaccess фајлу та измена, везана за darkodrazovic.in.rs и после чувања фајла….сви линкови који су ишли на http://darko……in.rs/неки_линк сад иду на https://darko…..in.rs/неки_линк и на који год интерни линк да кликнете на сајту – водиће вас на https

htaccess

Сад остаје део око замене свих http://darkodrazovic линкова у бази. Пре било чега – направите бекап MySQL базе (може преко cPanel-a).
Можда није баш по правилу службе, али ја то реименовање линкова радим преко скрипе скинуте са https://interconnectit.com која се зове Search and Replace DB. Дакле, скинете последњу верзију програма, upload-ујете тај зип на root сајта, распакујете (у cPanel-у, десни клик и Extract) и реименујете фолдер у несто слабије препознатиљиво (ја сам га реименовао у aaaddd)…потом у свој browser укуцавам: https://darkodrazovic.in.rs/aaaddd

  1. REPLACE стари url WITH нови url
  2. Dry Run – како бих видео где ће све промене бити примењене
  3. Live Run – како бих реименовао све линкове са старог на нови url

Кад се процес заврши, можете одрадити исто за сваки случају и са реименовање http://www.darkodrazovic у https://darkodrazovic можда се неки линк од раније вуче а да није исти (дакле сви интерни линкови би требало да буду или https://сајт.com или https://www.sajt.com).

Кад је овај посао завршен, ОБРИШИТЕ ФОЛДЕР (у овом случају фолдер aaaddd), можда ћете морати да обришете и кеш (ако користите неки WordPress додатак за кеширање) и идите на сајт да видите има ли и даље знака узвичника на URL-у. У нашем случају нема.

Исправан URL сајта

А ако кликнете на катанац имаћете кратак инфо да је ваша конекција са сајтом безбедна

Сертификат исправaн

Тиме је посао постављања SSL сертификата завршен за ваш блог или сајт. Не заборавите само, да Let’s Encrypt сертификат сад, ценим док не изађе из Public Beta фазе, морате обнављати свака 3 месеца, тако да поставите себи неки подсетник, у Гугл календару, или шта већ користите како подсетник. Дакле сад, ако бисте оставили неки поверљиви податак у некој форми тамо на сајту – нико између веб сервера и вас не би могао да га упеца….ако бисте оставили коментар на блогу, уљез би само видео да сте успоставили конекцију са сајтом, не и који сте коментар оставили, коју сте мејл адресу унели и слично. Имајте у виду да је Let’s Encrypt и даље у бета фази, као и да сајт darkodrazovic.in.rs није на dedicated/VPS-у па се не може утицати баш на све.