Деньги, как известно, имеют различные функции. Одной из них является непрестанное движение денег в обращении, обслуживание процесса обращения. Без выполнения деньгами этой функции торговля была бы невозможна.

Як перайсці з http на https?

  1. Навошта трэба выкарыстоўваць https і што маецца на ўвазе пад бяспекай?
  2. набыццё сертыфіката
  3. віды сертыфікатаў
  4. Wildcard SSL
  5. Мульцідаменны SSL сертыфікаты
  6. EV (Extended Validation) сертыфікаты
  7. Сертыфікаты з падтрымкай IDN
  8. атрыманне сертыфіката
  9. Настройка сайта
  10. Тэг <base />
  11. Тэг rel = "canonical»
  12. 301 рэдырэкт з http на https
  13. файл robots.txt
  14. Пераезд сайта ў панэлі вэбмайстроў Яндэкс і Гугл
  15. Яндэкс вэбмайстар
  16. Цэнтр вэбмайстроў Гугл
  17. Пераход на HTTPS ў Joomla
  18. Памылка пры пераходзе на Https ў Joomla
  19. Пераход на HTTPS ў WordPress

Ўсім прывітанне! У дадзеным артыкуле закранем тэму бяспекі, а менавіта бяспечны пратакол перадачы дадзеных - https. Калі вы звярнулі ўвагу мой блог, на якім вы зараз знаходзіцеся працуе па пратаколе https, на які я перайшоў нядаўна. Таксама, на https я перавёў адзін з маіх кліенцкіх сайтаў. Давялося крыху павазіцца і панервавацца, але ў выніку ўсё атрымалася. Я падумаў, што трэба абавязкова напісаць пра гэта на блогу - як перайсці з http на https бязбольна для сайта, тым больш гэтая тэма я лічу ўжо папулярная, бо сёння ўсё больш і больш сайтаў пераходзяць на https.

Што мяне заахвоціла перайсці на пратакол https? У апошні час мне на вочы сталі трапляцца вось такія загалоўкі: Браўзэр Mozilla Firefox у хуткім часе перастане падтрымліваць небяспечныя http-злучэння; Урад ЗША даручыў усім дзяржаўным сайтам перайсці на HTTPS; C студзеня 2017 года ўсе сайты, якія перадаюць сакрэтныя дадзеныя (паролі, нумары крэдытных карт і г.д.) па неабароненым злучэнню ў браўзэры Google Chrome будуць пазначацца як небяспечныя. Плюс да ўсяго дзесьці ў інтэрнэце чытаў, што хутка ўсіх сайтаў прыйдзецца перайсці на пратакол https ў абавязковым парадку. Я падумаў, што ў адзін цудоўны дзень усе роўна гэтая доля напаткае і мяне. Дык навошта ж цягнуць? Тым больш хостынг beget.ru , На якім я сяджу прадаставіў магчымасць для набыцця бясплатных SSL-сертыфікатаў. Увогуле, сабраў усю неабходную інфармацыю па тым, як перайсці з HTTP на HTTPS і зрабіў гэта. 🙂

структура артыкула

Навошта трэба выкарыстоўваць https і што маецца на ўвазе пад бяспекай?

Калі казаць коратка, то пратакол https дазваляе адпраўляць запыты на сервер з нашага сайта ў зашыфраваным выглядзе, гарантуючы пры гэтым, што гэтыя самыя дадзеныя не будуць перахопленыя хакерамі. Элементарны прыклад перадаюцца дадзеных - гэта аўтарызацыя на сайце (або рэгістрацыя). У працэсе аўтарызацыі мы адпраўляем запыт на сервер, які змяшчае лагін і пароль. Дык вось, калі адпраўляць гэтыя дадзеныя па небяспечным злучэнню, то яны лёгка могуць быць перахопленыя, што ў выніку можа прывесці да ўзлому сайта. Працу пратаколу https забяспечваюць SSL сертыфікаты. Яны бываюць розных відаў, пра віды сертыфікатаў чытайце ніжэй.

Увесь працэс я вырашыў падзяліць на крокі і выконваць іх як раз менавіта ў такой паслядоўнасці. Таксама ніжэй я дам рэкамендацыі па пераходзе для папулярных cms Joomla і WordPress. У кожнага ёсць свае асаблівасці.

набыццё сертыфіката

Для пачатку неабходна набыць SSL сертыфікат, каб ваш сайт быў даступны па абодвух пратаколах - http і https. Давайце спачатку занясем некаторыя яснасці ў віды SSL сертыфікатаў.

віды сертыфікатаў

простыя сертыфікаты

Такія сертыфікаты выдаюцца на адзін або некалькі даменаў і падыходзяць як фізічным, так і юрыдычным асобам. Як правіла, на выпуск такіх сертыфікатаў не сыходзіць шмат часу, можа быць выпушчаны нават у плыні 5 хвілін. Каб атрымаць такі сертыфікат неабходная толькі праверка прыналежнасці да дамену таго, хто яго запытвае.

Wildcard SSL

Wildcard SSL - выдатна падыдзе сайтам з наяўнасцю паддаменаў. У дадзеным выпадку досыць выпусціць адзін сертыфікат, які будзе працаваць на ўсіх паддаменаў і дазволіць зэканоміць грошы на куплю асобных сертыфікатаў.

Мульцідаменны SSL сертыфікаты

Мульцідаменны SSL сертыфікат - сертыфікат, які можа падтрымліваць адразу некалькі даменаў. Таксама, як і Wildcard дазволіць зэканоміць грошыкі. Так што майце на ўвазе, калі ў вашай кампаніі ці праекта маецца некалькі даменных імёнаў, то выбірайце менавіта мульцідаменны сертыфікат.

EV (Extended Validation) сертыфікаты

EV (Extended Validation) - пашыраная праверка кампаніі. Дадзены выгляд сертыфіката могуць дазволіць сабе купіць толькі буйныя кампаніі. Для яго атрымання неабходна прадаставіць ўсю падрабязную інфармацыю аб кампаніі - назва арганізацыі, рэквізіты, наяўнасць аб дзяржаўнай рэгістрацыі, рэальныя званкі для сцвярджэння атрыманых дадзеных і многае іншае. Так, атрыманне такога выгляду сертыфіката справа клапотнае, але паверце яно таго варта. Больш за тое, побач з адраснай радком у браўзэры будзе адлюстроўвацца назва кампаніі. Вось як гэта выглядае на прыкладзе сайта Ашчадбанка.

Глядзіцца крута і павышае давер патэнцыйнага кліента. Таму, уладальнікам буйных кампаній рэкамендуецца выпуск менавіта EV сертыфікатаў.

Сертыфікаты з падтрымкай IDN

Не ўсе сертыфікаты падтрымліваюць кірылічныя дамены. Калі ў вас дамен кірыліцай у зоне РФ, то вам варта набыць сертыфікат з падтрымкай IDN.

Больш падрабязна пра віды сертыфікатаў і іх кошту вы можаце пачытаць у інтэрнэце. Тут жа я прывёў толькі некаторыя, каб вы мелі паняцце, што сертыфікаты SSL бываюць розныя.

атрыманне сертыфіката

Сёння набыць сертыфікат SSL для сайта можна абсалютна бясплатна. Ужо даўно Google заявіў пра тое, што пара ўжо пераходзіць усім на бяспечны пракол https і што перавагу ў ранжыраванні будзе аддавацца сайтам менавіта з абароненым злучэннем. Дарэчы, гэта яшчэ адна прычына па якой я перайшоў на https. Увогуле, у сувязі з гэтым усім у свет з'явіўся праект пад назвай Let's Encrypt . У першую чаргу дадзены праект разлічаны на даступнасць набыцця SSL сертыфіката, а таксама палегчыць жыццё шараговым вэб-распрацоўнікам з устаноўкай сертыфікатаў (генерацыя прыватных ключоў і іншае). І што самае галоўнае - сертыфікаты, якія выдаюцца Let's Encrypt, абсалютна бясплатныя. Асабіста на маім блогу стаіць менавіта такі сертыфікат.

Я атрымаў сертыфікат SSL ад Let's Encrypt ў панэлі кіравання beget.ru. Калі вы карыстаецеся дадзеных хостынгам, то атрымаць яго будзе прасцей простага. Заходзіце ў панэль кіравання Бегет, далей пераходзіце ў раздзел «Дамены» і ў спісе даменаў пстрыкае па абразку SSL.

Заходзіце ў панэль кіравання Бегет, далей пераходзіце ў раздзел «Дамены» і ў спісе даменаў пстрыкае па абразку SSL

Абразок побач з даменам кажа пра тое, што сертыфікат ўжо усталяваны. Патрапіўшы ў раздзел SSL, адкрываем ўкладку «Бясплатны SSL сертыфікат«. Калі ў вас маюцца поддомены на абраным дамене, то лепш адразу выберыце і іх таксама, бо калі гэтага не зрабіць адразу, то ў далейшым прыйдзецца перавыпускаецца сертыфікат.

Калі ў вас маюцца поддомены на абраным дамене, то лепш адразу выберыце і іх таксама, бо  калі гэтага не зрабіць адразу, то ў далейшым прыйдзецца перавыпускаецца сертыфікат

Настройка сайта

загружаныя рэсурсы

Для перакладу сайта на HTTPS неабходна выканаць некаторыя налады на сайце, тычыцца гэта загружаных рэсурсаў. Што маецца на ўвазе пад рэсурсамі, гэта - скрыпты, стылі, карцінкі, аўдыё, відэа, г.зн. усе тыя рэсурсы, якія загружаюцца браўзэрам з вашага сайта праз пратакол http. Існуюць адносныя і абсалютныя адрасы. Чым яны адрозніваюцца?

Адносны адрас:

/image.jpg

Адносны адрас па-за залежнасці ад пратаколу:

//sitename.ru/image.jpg

Абсалютны адрас:

http://sitename.ru/image.jpg

У абсалютным адрасе паказваецца даменнае імя сайта з пратаколам. Дык вось, пры пераходзе на https неабходна ўжываць адносныя адрасы па-за залежнасці ад пратаколу, г.зн. адсякаючы сам пратакол. Пры такім падыходзе рэсурсы будуць загружацца па такім жа пратаколе, што і ваш і не важна на http ён ці на https. Адзіная ўмова - калі вы загружаеце рэсурсы з знешніх сайтаў (напрыклад, з CDN), то дадзеныя сайты павінны быць даступныя па https, інакш ад іх прыйдзецца адмовіцца.

Напрыклад, загрузка бібліятэкі jQuery з CDN з падтрымкай https будзе наступнай:

<Script src = "// code.jquery.com/jquery-1.12.4.min.js"> </ script>

Таксама, як варыянт вы можаце проста паказаць усе абсалютныя спасылкі з пратаколам https (так напрыклад зроблена ў WordPress).

Тэг <base />

Звярніце ўвагу, калі вы на сайце карыстаецеся тэг <base> з адрасам сайта, то абавязкова прасачыце, каб адрас быў паказаны з пратаколам https. Напрыклад, <base href = "https://zaurmag.ru» />. Дадзены тэг не з'яўляецца абавязковым, але ўсё ж, калі ў вашай cms ён выкарыстоўваецца, то будзьце ласкавы яго выправіць у выпадку чаго. Знаходзіцца ён у самым пачатку секцыі <head>. Калі атрымаецца так, што вы ўсе спасылкі змянілі на адносныя па-за залежнасці ад пратаколу (//sitename.ru), а ў тэгу <base> ўтрымліваецца адрас з http, то ўсе вашыя адносныя спасылкі будуць лічыцца адноснымі ў залежнасці ад пратаколу http. У выніку ў консоле браўзэра вы атрымаеце кучу памылак, а на сайце паплыве дызайн.

Тэг rel = "canonical»

Калі ў вас на сайце выкарыстоўваецца тэг rel = "canonical», то прасочыце за тым, каб кананічны адрас старонкі ў дадзеным тэгу быў абсалютным з указаннем пратаколу https. Інакш, калі будзе http ён будзе працаваць толькі на шкоду.

301 рэдырэкт з http на https

Каб не страціць трафік нам неабходна зрабіць так, што калі карыстач заходзіць на сайт па пратаколе http яго б аўтаматычна перакідае на https. Злепванне люстэркаў і переиндексация сайта ў пошукавых сістэмах справа доўгая (Гугл праўда хутка рэагуе, вось з Яндэксам прыйдзецца чакаць), таму 301 рэдырэкт можа гэтую справу паскорыць і не даць страціць трафік. Для гэтага ў файл .htaccess трэба дадаць усяго два радкі:

RewriteCond% {SERVER_PORT}! ^ 443 $ RewriteRule ^ (. *) $ Https://sitename.ru/$1 [R = 301, L]

Гэтых двух радкоў павінна хапіць. Калі ж у вас будуць праблемы з рэдырэкт, то можаце паспрабаваць альтэрнатыўны код.

RewriteEngine On # Калі гэтага радка няма вышэй RewriteCond% {HTTP: X-Forwarded-Protocol}! = Https RewriteRule. * Https: //% {SERVER_NAME}% {REQUEST_URI} [R = 301, L]

А вось яшчэ адзін код рэдырэкту. Бывала такое ў мяне, што вышэй два кода не працавалі. Дапамог толькі гэты.

RewriteEngine On RewriteCond% {HTTPS} off RewriteCond% {HTTP: X-Forwarded-Proto}! Https RewriteRule ^ (. *) $ Https: //% {HTTP_HOST}% {REQUEST_URI} [L, R = 301]

Калі і гэта не дапаможа, то вам трэба будзе звярнуцца ў службу падтрымкі хостынгу, яны павінны дапамагчы з гэтым пытаннем.

Яшчэ раю дадаць код, які будзе перакідваць па 301 рэдырэкт на www або на без www, у залежнасці ад таго, які дамен вы абралі асноўным.

## рэдырэкт з без www на www: RewriteCond% {HTTP_HOST} ^ sitename.ru $ [NC] RewriteRule ^ (. *) $ Https: //www.sitename/$1 [R = 301, L] ## рэдырэкт c www на без www: RewriteCond% {HTTP_HOST} ^ www.sitename.ru $ [NC] RewriteRule ^ (. *) $ https://sitename.ru/$1 [R = 301, L]

файл robots.txt

У robots.txt нам абавязкова варта паказаць галоўнае люстэрка з пратаколам https. Таксама пазначыць спасылку на карту сайта так з пратаколам https. Вось як я зрабіў на сваім блогу:

Host: https://zaurmag.ru Sitemap: https://zaurmag.ru/sitemap.xml

Пераезд сайта ў панэлі вэбмайстроў Яндэкс і Гугл

Пасля вышэйпералічаных дзеянняў нам неабходна паведаміць пошукавікам, што сайт пераехаў на новы пратакол https. Як вядома адрас з http і з https гэта абсалютна два розных адрасы ў вачах пошукавікаў.

Яндэкс вэбмайстар

Для пераезду сайта ў Яндэкс заходзім у панэль Яндэкс Вэбмайстар па адрасе https://webmaster.yandex.ru . Выбіраем свой сайт і ў раздзеле «Настройка індэксавання» ўводзім свой дамен і адзначаем чэк-бокс «Дадаць HTTPS«, захоўваем.

Далей пераходзім у раздзел «Настройка індэксавання» -> «Файлы Sitemap» і дадаем адрас карты сайта з пратаколам https. Дадзены адрас, калі памятаеце мы паказвалі і ў файле robots.txt.

Цэнтр вэбмайстроў Гугл

З Яндэксам разабраліся, зараз давайце пяройдзем да Google. Ідзем у цэнтр вэбмайстроў Гугл - https://www.google.com/webmasters і дадаем ўсе версіі (люстэрка) сайта. Усяго іх павінна быць 4. Напрыклад, для майго блога я дадаў:

http://zaurmag.ru https://zaurmag.ru http://www.zaurmag.ru https://www.zaurmag.ru

ru

Далей выбіраем асноўнае люстэрка з https натуральна, толькі з www або без www. Для свайго сайта я выбраў без www - https://zaurmag.ru. Адкрываем сайт і ў наладах сайта (клікаем па шасцярэньцы справа) паказваем асноўны дамен. Вось на прыкладзе майго блога.

Вось на прыкладзе майго блога

Далей паказваем адрас карты сайта. Для гэтага ідзем у «Сканіраванне» -> «Файлы Sitemap» і дадаем адрас карты сайта, пстрыкнуўшы па чырвонай кнопачкі справа. Дарэчы, пакуль пісаў артыкул выявіў, што я не дадаў карту сайта для асноўнага дамена сайта zaurmag.ru. 🙂

🙂

Ну вось, на гэтым усё. Калі вы зрабілі ўсё правільна, то ў браўзэры побач з адраснай радком у вас павінен з'явіцца зялёны замочак. Хацелася б адзначыць, што калі хаця б адзін рэсурс будзе загружацца па неабароненым пратаколу, дык зялёнага замочка вы не пабачыце, будзе шэры клічнік. Адсачыць загрузку ўсіх рэсурсаў вы можаце ў кансолі браўзэра .

Адсачыць загрузку ўсіх рэсурсаў вы можаце ў   кансолі браўзэра

Таксама хацелася б сказаць, што працэс переиндексации ў Гугл займае не так шмат часу, прыкладна 2 тыдні хопіць, а можа і менш. Вось у Яндэкс па складаней з гэтым, я і не здзіўлены. Яндэкс заўсёды быў тугі ў гэтым плане. У першы час у вас абнуліцца ТИЦ, калі ён у вас быў і ў першы ж апдэйт ТИЦа павінен будзе вярнуцца. Гэта я напісаў, каб вы не палохаліся. Ну а далей у Яндэкс Вэбмайстар вы выявіце наступную карціну ...

Ну а далей у Яндэкс Вэбмайстар вы выявіце наступную карціну

Прайшло даволі прыстойны час пасля пераходу на https і як бачыце па скрін яшчэ не ўсе старонкі перайшлі на https. Што сказаць, так уладкаваны айчынны пошукавік.

Ветразь словаў пра Яндэкс Метрыку. Калі ў вас быў усталяваны код яндэкс метирки, то ў панэлі метирики вам прыйдзецца дадаць сайт зноўку з пратаколам https.

Пераход на HTTPS ў Joomla

Абноўлена - 2016/12/15

У апошніх версіях Joomla з пераходам на https не павінна ўзнікнуць праблем. У файл .htaccess не абавязкова дадаваць дырэктывы рэдырэкт, рухавічок сам перакіне з http на https. Для гэтага неабходна проста ўключыць опцыю ў агульных наладах Joomla - «Сервер» -> «Уключыць SSL» -> «Увесь сайт».

Важна! Уключайце дадзеную опцыю менавіта тады, калі вы ўпэўнены, што сертыфікат ў вас ужо ўсталяваны і сайт даступны па пратаколе Https.

Памылка пры пераходзе на Https ў Joomla

Адзін раз у мяне было такое, што мне давялося крыху папрацаваць, на адным з кліенцкіх сайтаў пераход на https прайшоў не так гладка. Браўзэр лаяўся на адносныя адрасы загружаных рэсурсаў, хоць адрасы былі ўказаны адноснымі па-за залежнасці ад пратаколу. Праблема была ў тэгу <base />. Давайце раскажу па парадку.

Акрамя тых налад сайта, што былі ўказаны вышэй нам неабходна адкрыць файл configuration.php і ў полі live_site ўпісаць абсалютны адрас з праколам https.

public $ live_site = 'https://sitename.ru';

Па ідэі пасля гэтай налады ў тэгу <base /> адрас сайта павінен быць паказаны з пратаколам https. Але не, ён быў паказаны з пратаколам http, ад таго і пайшлі ўсе памылкі. Пашукаў рашэнне праблемы ў інтэрнэце, канкрэтна на форуме joomlaforum.ru і знайшоў рашэнне. Неабходна было зрабіць некаторы хак ядра, праўда запэўнівалі, што пасля абнаўлення дадзеныя змены не затрутся. Адкрываем файл - /libraries/joomla/document/renderer/html/head.php і замяняем (77 радок)

$ Buffer. = $ Tab. '<Base href = "'. $ Base. '" />'. $ LnEnd;

на

$ Buffer. = $ Tab. '<Base href = "'. Juri :: base (). '" />'. $ LnEnd;

Скажу адразу - пасля абнаўлення рухавічка змены ўсё ж заціраюцца і вам прыйдзецца пасля кожнага абнаўлення ўносіць праўкі ў вышэйзгаданы файл.

Пакуль я гэтую праблему так і не вырашыў. Не разумею чаму так адбываецца - версія рухавічка апошняя.

Пасля гэтых дзеянняў ўсё стала па-ранейшаму. Таксама ў агульных наладах Joomla, уключыў SSL. Яе ўключэнне прывяло да непрацаздольнасці сайта. Калі раптам вы выбралі опцыю «Увесь сайт» і сайт перастаў працаваць, то вам неабходна адкрыць файл configuration.php па Ftp, знайсці $ force_ssl і ўсталяваць значэнне на 0.

public $ force_ssl = '0';

Пасля гэтага сайт запрацуе.

Пераход на HTTPS ў WordPress

У прынцыпе для пераходу на https ў WordPress ніякіх дадатковых дзеянняў, акрамя вышэйпералічаных рабіць не трэба. Адзінае трэба памяняць адрас сайта на https ў агульных наладах WordPress. Але гэтую наладу неабходна зрабіць толькі пасля набыцця SSL сертыфіката, калі ваш дамен будзе даступны па пратаколе https, інакш у адмінку вы не зможаце патрапіць.

Таксама, пажадана зрабіць бэкап сайта на ўсялякі выпадак. Проста справа ў тым, што ў WordPress ўсе адрасы захоўваюцца ў базе дадзеных у абсалютным выглядзе. Пасля змены налады сайта ўсе адрасы павінны памяняцца і ў базе дадзеных. Таму на выпадак, калі пойдзе нешта не так зрабіце бэкап.

На гэтым і завяршу. Усім дзякуй за ўвагу. Не стесняемся, задаем пытанні ў каментарах.

праверка арфаграфіі

Навошта трэба выкарыстоўваць https і што маецца на ўвазе пад бяспекай?
Што мяне заахвоціла перайсці на пратакол https?
Дык навошта ж цягнуць?
Чым яны адрозніваюцца?