In-Portal Developers Guide

This is a wiki-based Developers Guide for In-Portal Open Source CMS. The purpose of this guide is to provide advanced users, web developers and programmers with documentation on how to expand, customize and improve the functionality and the code the In-Portal software. Please consider contributing to our documentation writing effort.

K4:Как включить SSL-режим

From In-Portal Developers Guide

(Difference between revisions)
Jump to: navigation, search
Current revision (11:58, 15 March 2015) (view source)
 
(2 intermediate revisions not shown.)
Line 1: Line 1:
 +
{{Transferred|url = http://community.in-portal.org/pages/viewpage.action?pageId=14155803}}
 +
{{toc | category = Настройка системы | sortkey = 003.001}}
{{toc | category = Настройка системы | sortkey = 003.001}}
-
Before configuring the protocol, a valid SSL-certificate must be installed on the server.
+
Перед настройкой протокола нужно, что бы на сервере был установлен действительный (valid) SSL-сертификат.
{| class="prettytable vertical-table"
{| class="prettytable vertical-table"
-
! valid SSL-certificate || invalid SSL-certificate
+
! действительный SSL-сертификат || не действительный SSL-сертификат
|-
|-
| style="text-align: center;" | [[Image:ssl_valid.jpg|frameless|border|действительный SSL-сертификат]]
| style="text-align: center;" | [[Image:ssl_valid.jpg|frameless|border|действительный SSL-сертификат]]
| style="text-align: center;" | [[Image:ssl_error.jpg|frameless|border|не действительный SSL-сертификат]]
| style="text-align: center;" | [[Image:ssl_error.jpg|frameless|border|не действительный SSL-сертификат]]
|}
|}
-
The above example shows how a browser window looks when a valid SSL-certificate is installed versus when an invalid SSL-certificate is installed (for example, because it was issued to a different site).
+
В приведённой выше таблице можно увидеть как выгладит окно браузера, в случает когда установлен действительный SSL-сертификат и в случае, когда SSL-сертификат не действителен (напр. выдан другому сайту).
-
== Общие положения - General Items?? ==
+
== Общие положения ==
-
All [[K4:Configuration|configuration variables]] needed for configuring an SSL can be found in the section "<code>Configuration -> System Variables</code>" in the administrative console. It doesn't matter for which side of the site the SSL is being setup, a value for the configuration variable [[K4:Configuration#SSL_URL|SSL_URL]] ("<code><nowiki>SSL Full URL (https://www.domain.com/path)</nowiki></code>") must always be entered.
+
Все требуемые для настройки [[K4:Configuration|конфигурационные переменные]] находятся в разделе "<code>Configuration -> System Variables</code>" административной консоли сайта. Независимо о того для какой части сайта настраивается SSL всегда требуется указать значение конфигурационной переменной [[K4:Configuration#SSL_URL|SSL_URL]] ("<code><nowiki>SSL Full URL (https://www.domain.com/path)</nowiki></code>").
 +
== SSL для административной консоли ==
 +
[[Image:ssl_admin.jpg|thumb|left|Административная консоль в режиме SSL]]
 +
Для подключения SSL к административной консоли требуется включить конфигурационную переменную [[K4:Configuration#Require_AdminSSL|Require_AdminSSL]] ("<code>Require SSL for Administrative Console</code>"). Далее нажимаем кнопку <code>Save</code> на панели инструментов и выходим из системы (<code>logout</code>). На странице ввода имени пользователя и пароля должны увидеть то, что обведено на приведённом слева изображении. Вот и все – протокол успешно настроен для административной консоли.{{clear|left}}
-
== SSL for the administrative console ==
+
== SSL для пользовательской части сайта ==
-
[[Image:ssl_admin.jpg|thumb|left|Administrative console in SSL mode]]
+
Для подключения SSL к пользовательской части сайта требуется включить некоторые (в зависимости от функциональности настраиваемого сайта) из ниже приведённых конфигурационных переменных:
-
To configure an SSL for the administrative console, the configuration variable [[K4:Configuration#Require_AdminSSL|Require_AdminSSL]] ("<code>Require SSL for Administrative Console</code>") must be turned on. Then, we press the <code>Save</code> button in the toolbar and exit the system (<code>logout</code>). On the login page, you should see what's circled on the image to the left. That's it - the protocol has been configured successfully for the administrative console. {{clear|left}}
+
-
 
+
-
== SSL for the site front-end ==
+
-
To configure an SSL for the front-end part of the site (user's side), a couple (depending on functionality of the site) of the following configuration variables must be turned on:  
+
{| class="prettytable"
{| class="prettytable"
-
! configuration variable || description
+
! конфигурационная переменная || описание
|-
|-
| [[K4:Configuration#Require_SSL|Require_SSL]]<br><code>Require SSL for login & checkout</code>
| [[K4:Configuration#Require_SSL|Require_SSL]]<br><code>Require SSL for login & checkout</code>
-
| Turns on SSL mode for site pages where, in the html code of the templates, there is the tag <code><inp2:m_CheckSSL mode="required" condition="Require_SSL"/></code>
+
| Включение SSL режима для страниц сайта, где в html коде шаблона прописан тег <code><inp2:m_CheckSSL mode="required" condition="Require_SSL"/></code>
|-
|-
| [[K4:Configuration#Force_HTTP_When_SSL_Not_Required|Force_HTTP_When_SSL_Not_Required]]<br><code>Redirect to HTTP when SSL is not required</code>
| [[K4:Configuration#Force_HTTP_When_SSL_Not_Required|Force_HTTP_When_SSL_Not_Required]]<br><code>Redirect to HTTP when SSL is not required</code>
-
| This option is needed so that there is an automatic redirect to an address without https when a user goes from a page with the SSL protocol to a page without SSL.
+
| Эта опция нужна для того, чтобы при переходе со страницы с включенным SSL протоколом на страницу без SSL, происходил автоматический переход на адрес без https.
|-
|-
| [[K4:Configuration#UseModRewriteWithSSL|UseModRewriteWithSSL]]<br><code>Enable MOD_REWRITE for SSL</code>
| [[K4:Configuration#UseModRewriteWithSSL|UseModRewriteWithSSL]]<br><code>Enable MOD_REWRITE for SSL</code>
-
| If the front-end uses MOD_REWRITE technology, then it's possible (but not required) to turn on MOD_REWRITE so that in SSL-mode links are also built using MOD_REWRITE.  
+
| Если пользовательская часть сайта использует технологию MOD_REWRITE, то можно (но не обязательно) включить данную опцию, для того, чтобы в SSL-режиме тоже строились MOD_REWRITE ссылки.
|}
|}
-
To switch into SSL-mode and back on templates, the '''<code>m_CheckSSL</code>''' tag must be used. It's recommended to put the tag at the beginning of the template or after the <code>m_RequireLogin</code> tag, when this tag is used. Below is an example of using this tag in a template:
+
Для перехода в SSL-режим и обратно на шаблонах следует использовать тэг '''<code>m_CheckSSL</code>'''. Его рекомендуется ставить в начале шаблона или после тэга <code>m_RequireLogin</code>, когда таковой используется. Ниже приведён пример использования данного тега в шаблоне:
<source lang="xml">
<source lang="xml">
<inp2:m_CheckSSL mode="required"/>
<inp2:m_CheckSSL mode="required"/>
-
<inp2:m_include template="inc/header"/> // inside the template "inc/header" there must be the tag <inp2:m_CheckSSL/>
+
<inp2:m_include template="inc/header"/> // внутри шаблона "inc/header" должен быть тэг <inp2:m_CheckSSL/>
HTML Code
HTML Code
<inp2:m_include template="inc/footer"/>
<inp2:m_include template="inc/footer"/>
</source>
</source>
-
Description of the <code>m_CheckSSL</code> tag parameters:
+
Описание параметров тега <code>m_CheckSSL</code>:
{| class="prettytable"
{| class="prettytable"
-
! name || description
+
! название || описание
|-
|-
-
| {{ConfigProperty|mode|string}} || If this parameter is set to "<code>required</code>", then the template will be marked as requiring an SSL to work correctly. If visiting this page while not in SSL-mode, then SSL-mode will be automatically turned on. If the parameter is not set or an empty value is set, then it'll have the opposite effect.
+
| {{ConfigProperty|mode|string}} || Если указать "<code>required</code>" в качестве значения данного параметра, то шаблон будет помечен, как требующий наличия SSL-режима для своей корректной работы. Если потом зайти на этот шаблон не из SSL-режима, то будет автоматически включён SSL-режим. Если параметр не указывать или указать пустое значение, то произойдёт обратное действие.
|-
|-
-
| {{ConfigProperty|for_logged_in_only|int}} || If this parameter is set, then SSL-mode will only turn on for authenticated users.
+
| {{ConfigProperty|for_logged_in_only|int}} || Если указать данный параметр, то SSL-режим будет включаться только для авторизованных пользователей.
|-
|-
-
| {{ConfigProperty|condition|string}} || The name of the [[K4:Configuration|configuration variable]], whose value must be checked before allowing a switch to SSL-mode. If this configuration variable is missing or turned off, then a change into SSL-mode will not happen.  
+
| {{ConfigProperty|condition|string}} || Название [[K4:Configuration|конфигурационной переменной]], значение которой нужно проверить перед тем, как разрешать переход в SSL-режим. Если указанная конфигурационная переменная отсутствует или выключена, то переход в SSL-режим осуществлён не будет. {{TipBox|Для пользовательской части сайта можно использовать конфигурационную переменную [[K4:Configuration#Require_SSL|Require_SSL]].}} Если планируется переключать некоторые части сайта в SSL-режим в зависимости от настроек конфигурации, то этот параметр является тем, что нужно.  
-
{{TipBox|For the front-end, the [[K4:Configuration#Require_SSL|Require_SSL]] configuration variable can be used.}} If the plan is to switch parts of a site into SSL-mode depending on configuration settings, then this is the parameter that's needed.
+
|}
|}
-
[[Image:ssl_front.jpg|thumb|left|My Account in SSL mode ]]
+
[[Image:ssl_front.jpg|thumb|left|Профиль пользователя в режиме SSL]]
-
Basically, that's it, after turning on all corresponding options and setting up the <code>m_CheckSSL</code> tag, we can consider setup to be complete. On the left is an image of a <code>My Account</code> page with the SSL protocol turned on. On the page, we can see the 2 correct "SSL locks", that indicate that the protected mode has been setup properly. If these "locks" are shown with a line through them, then it means that the protocol wasn't setup correctly on the server or that it's expired. {{clear|left}}
+
Вот в принципе и все, после включения всех соответствующих опций и установки тэга <code>m_CheckSSL</code> можно считать настройку законченной. На приведённом слева изображении показана страница <code>My Account</code>, со включенным протоколом SSL. На ней также можно отчётливо видеть 2 корректных "SSL замочка", которые свидетельствуют о том, что защищённый режим установлен правильно. Если же эти "замочки" показаны с перечёркнутой линией, то это означает, что протокол не корректно установлен на сервере или время его действия истекло.{{clear|left}}
{| class="vertical-table"
{| class="vertical-table"
-
| [[Image:secure_warning.jpg|thumb|left|SSL certificate warning]
+
| [[Image:secure_warning.jpg|thumb|left|Предупреждение SSL сертификата]]
-
| It's possible that the browser, when loading a page, may show a warning like the one in the image on the left. As a rule, this kind of warning is shown when the page has a link that's not written using a relative path, instead using an absolute path and without the SSL protocol. To avoid this, it's strongly recommended to format all links to elements on the site (images, stylesheets, etc.) using the tag '''<code>m_TemplatesBase</code>''':
+
| Возможна ситуация, когда браузер может, при попадании на страницу, показывать приведённое на изображении слева сообщение об ошибке. Как правило, такое сообщение можно увидеть тогда, когда на странице есть ссылка, которая прописана не через относительный путь, а через абсолютный и без указания факта использования протокола SSL. Чтобы этого избежать настоятельно рекомендуется все ссылки на элементы сайта (изображения, таблицы стилей и т.п.) формировать при помощи тэга '''<code>m_TemplatesBase</code>''':
-
* '''incorrect''': <code><nowiki><img src="http://www.youdomain.com/img/sample_image.gif" alt=""/></nowiki></code>
+
* '''не правильно''': <code><nowiki><img src="http://www.youdomain.com/img/sample_image.gif" alt=""/></nowiki></code>
-
* '''correct''': <code><img src="'''<inp2:m_TemplatesBase/>'''<nowiki>/img/sample_image.gif" alt=""/></nowiki></code>
+
* '''правильно''': <code><img src="'''<inp2:m_TemplatesBase/>'''<nowiki>/img/sample_image.gif" alt=""/></nowiki></code>
|}
|}
 +
 +
[[ru:{{FULLPAGENAME}}]]
 +
[[en:K4:Enabling SSL]]

Current revision


Настройка системы Настройка системы
Статьи в этой категории

Перед настройкой протокола нужно, что бы на сервере был установлен действительный (valid) SSL-сертификат.

действительный SSL-сертификат не действительный SSL-сертификат
действительный SSL-сертификат не действительный SSL-сертификат

В приведённой выше таблице можно увидеть как выгладит окно браузера, в случает когда установлен действительный SSL-сертификат и в случае, когда SSL-сертификат не действителен (напр. выдан другому сайту).

Общие положения

Все требуемые для настройки конфигурационные переменные находятся в разделе "Configuration -> System Variables" административной консоли сайта. Независимо о того для какой части сайта настраивается SSL всегда требуется указать значение конфигурационной переменной SSL_URL ("SSL Full URL (https://www.domain.com/path)").

SSL для административной консоли

Административная консоль в режиме SSL
Административная консоль в режиме SSL

Для подключения SSL к административной консоли требуется включить конфигурационную переменную Require_AdminSSL ("Require SSL for Administrative Console"). Далее нажимаем кнопку Save на панели инструментов и выходим из системы (logout). На странице ввода имени пользователя и пароля должны увидеть то, что обведено на приведённом слева изображении. Вот и все – протокол успешно настроен для административной консоли.

SSL для пользовательской части сайта

Для подключения SSL к пользовательской части сайта требуется включить некоторые (в зависимости от функциональности настраиваемого сайта) из ниже приведённых конфигурационных переменных:

конфигурационная переменная описание
Require_SSL
Require SSL for login & checkout
Включение SSL режима для страниц сайта, где в html коде шаблона прописан тег <inp2:m_CheckSSL mode="required" condition="Require_SSL"/>
Force_HTTP_When_SSL_Not_Required
Redirect to HTTP when SSL is not required
Эта опция нужна для того, чтобы при переходе со страницы с включенным SSL протоколом на страницу без SSL, происходил автоматический переход на адрес без https.
UseModRewriteWithSSL
Enable MOD_REWRITE for SSL
Если пользовательская часть сайта использует технологию MOD_REWRITE, то можно (но не обязательно) включить данную опцию, для того, чтобы в SSL-режиме тоже строились MOD_REWRITE ссылки.

Для перехода в SSL-режим и обратно на шаблонах следует использовать тэг m_CheckSSL. Его рекомендуется ставить в начале шаблона или после тэга m_RequireLogin, когда таковой используется. Ниже приведён пример использования данного тега в шаблоне:

<inp2:m_CheckSSL mode="required"/>
<inp2:m_include template="inc/header"/> // внутри шаблона "inc/header" должен быть тэг <inp2:m_CheckSSL/>
HTML Code
<inp2:m_include template="inc/footer"/>

Описание параметров тега m_CheckSSL:

название описание
mode (string) Если указать "required" в качестве значения данного параметра, то шаблон будет помечен, как требующий наличия SSL-режима для своей корректной работы. Если потом зайти на этот шаблон не из SSL-режима, то будет автоматически включён SSL-режим. Если параметр не указывать или указать пустое значение, то произойдёт обратное действие.
for_logged_in_only (int) Если указать данный параметр, то SSL-режим будет включаться только для авторизованных пользователей.
condition (string) Название конфигурационной переменной, значение которой нужно проверить перед тем, как разрешать переход в SSL-режим. Если указанная конфигурационная переменная отсутствует или выключена, то переход в SSL-режим осуществлён не будет.
Image:Tipbox Icon.gif Для пользовательской части сайта можно использовать конфигурационную переменную Require_SSL.
Если планируется переключать некоторые части сайта в SSL-режим в зависимости от настроек конфигурации, то этот параметр является тем, что нужно.
Профиль пользователя в режиме SSL
Профиль пользователя в режиме SSL

Вот в принципе и все, после включения всех соответствующих опций и установки тэга m_CheckSSL можно считать настройку законченной. На приведённом слева изображении показана страница My Account, со включенным протоколом SSL. На ней также можно отчётливо видеть 2 корректных "SSL замочка", которые свидетельствуют о том, что защищённый режим установлен правильно. Если же эти "замочки" показаны с перечёркнутой линией, то это означает, что протокол не корректно установлен на сервере или время его действия истекло.

Предупреждение SSL сертификата
Предупреждение SSL сертификата
Возможна ситуация, когда браузер может, при попадании на страницу, показывать приведённое на изображении слева сообщение об ошибке. Как правило, такое сообщение можно увидеть тогда, когда на странице есть ссылка, которая прописана не через относительный путь, а через абсолютный и без указания факта использования протокола SSL. Чтобы этого избежать настоятельно рекомендуется все ссылки на элементы сайта (изображения, таблицы стилей и т.п.) формировать при помощи тэга m_TemplatesBase:
  • не правильно: <img src="http://www.youdomain.com/img/sample_image.gif" alt=""/>
  • правильно: <img src="<inp2:m_TemplatesBase/>/img/sample_image.gif" alt=""/>