---
title: "Напоминание о том, как использовать ID карту в ваших веб-приложениях"
canonical_url: "https://www.zone.ee/help/ru/kb/napominanije-o-tom-kak-ispolzovat-id-kartu-v-vashih-veb-prilozhenijah/"
post_type: "ht_kb"
published: "2024-04-29T10:22:40+00:00"
modified: "2025-10-10T07:27:22+00:00"
language: "ru"
author: "Ardi Jürgens"
taxonomies:
  ht_kb_category:
    - name: "Техническое"
      url: "https://www.zone.ee/help/ru/kb-categories/tehnicheskoje/"
  ht_kb_tag:
    - name: "ID-карта"
      url: "https://www.zone.ee/help/ru/kb-tags/id-karta/"
    - name: "Аутентификация по ID-карте"
      url: "https://www.zone.ee/help/ru/kb-tags/autentifikacija-po-id-karte/"
---

# Напоминание о том, как использовать ID карту в ваших веб-приложениях

Аутентификация на веб-сервере является устаревшим решением, в скором времени она перестанет поддерживаться, и необходимо будет перейти на использование Web eID. Подробнее о решении Web eID читайте [здесь](https://www.id.ee/en/article/web-eid/).

### Как вообще происходит проверка подлинности по ID-карте?

Аутентификация по ID-карте Эстонии настраивается на веб-сервере так, чтобы быть невидимой для клиентских приложений. В основном это происходит следующим образом:

1\) Веб-сервер запрашивает сертификат у посетителя (т. е. у его браузера).
(Как браузер посетителя запрашивает его у посетителя, зависит от конкретного браузера)

2\) После получения сертификата от браузера клиента веб-сервер проверяет следующее:

- сертификат **ДОЛЖЕН БЫТЬ** подписан со стороны [**AS Sertifitseerimiskeskus**](http://www.sk.ee/)Только после успешного выполнения проверки содержимое защищенной директории будет отображено, а PHP-приложение запущено на веб-сервере.

### Что такое списки отзыва и как они обновляются?

Списки отзыва – это файлы, содержащие все сертификаты эстонских ID-карт, действие которых было приостановлено в тот или иной момент времени.

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

Новые списки отзыва загружаются на виртуальные серверы Zone каждый час.

### Что нужно для использования ID-карты в веб-приложениях?

 Внимание! Для использования ID-карты в своих приложениях необходим выделенный IP-адрес. Выделенный IP-адрес доступен в пакете услуг PRO. Для активаций выделенного IP-адреса просим обратится в нашу службу поддержки.

Добавленный IP-адрес должен быть связан с соответствующим хостом из панели управления сервером (корневой домен виртуального сервера или один из его поддоменов).

Затем необходимо добавить файл `.htaccess`, содержащий 2 строки, в каталог, **доступ к которому посетитель может получить только при наличии подлинного удостоверения личности**. В .htaccess должны быть добавлены следующие строки:

```
SSLVerifyClient require
SSLVerifyDepth 2
```

Например, чтобы добавить поддержку ID-карт в https://companyname.ee/myapplication/, вам нужно создать файл `/secure/htdocs/myapplication/.htaccess` и включить в него приведенные выше строки.

### Как получить информацию об ID-карте посетителя от PHP?

Предполагаем, что поддержка ID-карты работает в нужном каталоге. Теперь необходимо получить информацию об ID-карте посетителя в приложений. Эта информация передается с веб-сервера в PHP через **переменные среды**.

В PHP есть функция **getenv()** для чтения переменных среды.

Для идентификации клиента существует переменная **SSL\_CLIENT\_S\_DN**. Оно содержит имя, фамилию и ID посетителя.

Вы можете легко увидеть все переменные с помощью [**phpinfo()**](https://www.zone.ee/help/ru/kb/otobrazhenije-informacii-php/). Переменные, связанные с сертификатом ID-карты, находятся в разделе **Apache Environment** с префиксом **SSL\_CLIENT\_\***.

 Любые символы, не относящиеся к стандарту ASCII, в имени владельца сертификата заменяются на кодированные символы: \\\\\\x01`\\\\\\x00 итд.

Личные данные в сертификате закодированы в формате UCS-2/UTF-16. Это позволяет использовать в имени человека символы, не присутствующие в таблице ASCII, например такие как ‘š’ ja ‘ž’. В результате все специальные символы заменяются двумя символами \\\\ и кодом символа в системе HEX.

Данные, закодированные таким образом, можно преобразовать в широко используемую кодировку UTF-8 с помощью следующего скрипта:

```
<?php
function certstr2utf8 ($str) {
$str = preg_replace_callback("/\\\\x([0-9ABCDEF]{1,2})/", function ($s) { return chr(hexdec($s[1])); }, $str);

$result="";

$encoding=mb_detect_encoding($str,"ASCII, UCS2, UTF8");

if ($encoding=="ASCII") {

$result=mb_convert_encoding($str, "UTF-8", "ASCII");

} else {

if (substr_count($str,chr(0))>0) {
$result=mb_convert_encoding($str, "UTF-8", "UCS2");
} else {
$result=$str;
}
}

return $result;
}

header ("Content-Type: text/html; charset=UTF-8");

$s = getenv ('SSL_CLIENT_S_DN');
$l = preg_split ('|/|', $s, -1, PREG_SPLIT_NO_EMPTY);

foreach ($l as $e) {
list ($n, $v) = explode ('=', $e, 2);
echo $n . '=' . certstr2utf8 ($v) . "<br />";
}
?>
```
