Как настроить SSL и HTTPS для сайтов на базе WordPress

ssl for wordpress

В послед­нее вре­мя мы мно­го писа­ли о без­опас­но­сти ваше­го сай­та, SSL-сер­ти­фи­ка­тах и HTTPS. Сего­дня мы рас­ска­жем, как создать SSL-сер­ти­фи­кат и под­клю­чить его к сай­ту на WordPress.

Поделитесь этой новостью/фото с друзьями в социальных сетях

Что такое HTTPS

HTTPS – это защи­щен­ный про­то­кол обме­на дан­ны­ми меж­ду сай­том и его посе­ти­те­ля­ми, кото­рый поз­во­ля­ет шиф­ро­вать тра­фик. Исполь­зо­ва­ние HTTPS вме­сто HTTP предот­вра­ща­ет воз­мож­ность досту­па зло­умыш­лен­ни­ков к лич­ным дан­ным поль­зо­ва­те­лей (паро­ли, номе­ра кре­дит­ных карт, адре­са элек­трон­ной почты).

Для мно­гих сай­тов про­то­кол HTTPS уже стал стан­дарт­ным, в то вре­мя как Google анон­си­ро­ва­ли, что с 2015 года будут поме­чать HTTP-сай­ты как небез­опас­ные. Поми­мо пре­иму­ществ исполь­зо­ва­ния HTTPS-про­то­ко­ла, сто­ит отме­тить, что сай­ты рабо­та­ют немно­го мед­лен­нее, чем обыч­ные с HTTP-про­то­ко­лом, так как необ­хо­ди­мо вре­мя на уста­нов­ку защи­щен­но­го соеди­не­ния и шиф­ро­ва­ние дан­ных.

SSL-сертификаты

Что­бы настро­ить HTTPS для сай­та, необ­хо­ди­мо при­об­ре­сти SSL-сер­ти­фи­кат. Для полу­че­ния сер­ти­фи­ка­та нуж­но обра­тить­ся в ком­па­нии, кото­рые выда­ют SSL-сер­ти­фи­ка­ты. Напри­мер, в RU-CENTER – круп­ней­ший реги­стра­тор доме­нов и один из веду­щих хостинг-про­вай­де­ров в Рос­сии. Часто SSL-сер­ти­фи­кат может вхо­дить в сто­и­мость хостин­га сай­та. Мы так­же писа­ли про бес­плат­ный SSL для любо­го сай­та от Cloudflare – воз­мож­но, имен­но такой вари­ант подой­дет для ваше­го сай­та.

Создание и подписание SSL-сертификата

Для того что­бы под­пи­сать сер­ти­фи­кат у постав­щи­ка, его необ­хо­ди­мо создать. Это мож­но сде­лать с помо­щью ути­ли­ты OpenSSL (по умол­ча­нию есть в OS X и боль­шин­стве Linux). Для Windows мож­но исполь­зо­вать OpenSSL для Windows или Cygwin.

Что­бы создать новый SSL-сер­ти­фи­кат и запрос на под­пись, нуж­но вос­поль­зо­вать­ся этой коман­дой:

openssl req -nodes -newkey rsa:2048 -keyout yourdomain.ru.key -out yourdomain.ru.csr

Так­же необ­хо­ди­мо запол­нить неко­то­рые дан­ные о сер­ти­фи­ка­те. При запро­се Common Name (FDQN) вве­ди­те ваш домен, без // и без www. После запол­не­ния всех осталь­ных дан­ных у вас появит­ся два новых фай­ла.

Для при­ме­ра мы будем исполь­зо­вать «yourdomain.ru»:

  • yourdomain.ru.key – при­ват­ный ключ к ново­му сер­ти­фи­ка­ту;
  • yourdomain.ru.csr – запрос на под­пи­са­ние ново­го сер­ти­фи­ка­та.

Необ­хо­ди­мо при­ват­ный ключ хра­нить в тайне и не выкла­ды­вать в общий доступ или пере­сы­лать по элек­трон­ной почте. Файл с рас­ши­ре­ни­ем .csr необ­хо­ди­мо отпра­вить на под­пись постав­щи­ку SSL-сер­ти­фи­ка­тов.

Напри­мер, в слу­чае с сер­ти­фи­ка­том PositiveSSL от NameCheap необ­хо­ди­мо перей­ти в раз­дел SSL Certificates в пане­ли управ­ле­ния и нажать «Activate Now» рядом с вашим новым сер­ти­фи­ка­том.

Если вы адми­ни­стри­ру­е­те сер­вер не само­сто­я­тель­но, то луч­ше все­го обра­тить­ся к ваше­му хостинг-про­вай­де­ру за помо­щью в кон­фи­гу­ра­ции сер­ти­фи­ка­тов.

Настройка HTTPS в WordPress

После вне­се­ния изме­не­ний в кон­фи­гу­ра­цию веб-сер­ве­ра ваш сайт на WordPress дол­жен авто­ма­ти­че­ски стать доступ­ным по про­то­ко­лу HTTPS. Все ссыл­ки на сай­те и в адми­ни­стра­тив­ной пане­ли про­дол­жат исполь­зо­вать про­то­кол HTTP. Поэто­му необ­хо­ди­мо изме­нить основ­ной про­то­кол сай­та с HTTP на HTTPS (в раз­де­ле Параметры/Общие в адми­ни­стра­тив­ной пане­ли WordPress).

Такие же настрой­ки мож­но задать в фай­ле wp-config.php с помо­щью кон­стант WP_HOME и WP_SITEURL. Это может быть полез­но, если вы совер­ши­ли ошиб­ку при напи­са­нии адре­са доме­на и сайт вдруг стал недо­ступ­ным.

После вне­се­ния изме­не­ний в адрес сайт, все ссыл­ки будут по умол­ча­нию исполь­зо­вать про­то­кол HTTPS. К сожа­ле­нию, это не каса­ет­ся тех ссы­лок, кото­рые были раз­ме­ще­ны вруч­ную.

Замена HTTP на HTTPS на страницах WordPress

Если на вашем сай­те неболь­шое коли­че­ство стра­ниц и запи­сей, то вы може­те вруч­ную отре­дак­ти­ро­вать их и изме­нить про­то­кол в ссыл­ках. Для сай­тов с боль­шим объ­е­мом инфор­ма­ции есть аль­тер­на­ти­вы.

Если вы исполь­зу­е­те WP-CLI, то быст­ро выпол­нить поиск с заме­ной мож­но коман­дой search-replace:

wp search-replace “//yourdomain.ru” “https://yourdomain.ru”

Вто­рой аль­тер­на­ти­вой явля­ет­ся PHP-скрипт Search Replace DB, кото­рый так­же выпол­ня­ет поиск с заме­ной, но предо­став­ля­ет при этом гра­фи­че­ский интер­фейс.

В любом слу­чае необ­хо­ди­мо сде­лать резерв­ную копию. После поис­ка с заме­ной зай­ди­те на ваш сайт и убе­ди­тесь в том, что все ста­рые ссыл­ки начи­на­ют­ся с https://.

Послед­ним шагом в настрой­ке HTTPS явля­ет­ся закры­тие ваше­го HTTP-сай­та и пере­на­прав­ле­ние все­го тра­фи­ка на новый про­то­кол с шиф­ро­ва­ни­ем. Сде­лать это надеж­нее все­го на уровне веб-сер­ве­ра.

Проверка правильности настройки HTTPS

Самой частой про­бле­мой при настрой­ке HTTPS в WordPress явля­ют­ся ссыл­ки и ресур­сы, загру­жа­е­мые по про­то­ко­лу HTTP. Напри­мер, если вы вста­ви­ли изоб­ра­же­ние или JavaScript файл по про­то­ко­лу HTTP, то по умол­ча­нию он не будет отоб­ра­жать­ся. В таком слу­чае нуж­но загру­зить дан­ный файл на соб­ствен­ный сайт и встро­ить его, исполь­зуя про­то­кол HTTPS.

В адрес­ной стро­ке бра­у­зе­ров Chrome и Firefox появят­ся спе­ци­аль­ные знач­ки при нару­ше­нии HTTPS-соеди­не­ния какой-либо ссыл­кой на HTTP-файл, так что при рабо­те с сай­том необ­хо­ди­мо обра­щать вни­ма­ние на зеле­ный замок сле­ва от адре­са сай­та. Этот замок дол­жен все­гда оста­вать­ся зеле­ным.

По мате­ри­а­лам: Wpmag.