Лицензия 1С на сервере Linux: ключ HASP или программная активация

· 9 мин

Содержание

Поставили сервер 1С на Ubuntu, опубликовали базу, а пользователи получают «Не найден ключ защиты». Сервер работает, лицензии нет. Причина почти всегда одна из двух: в системе нет драйвера ключа HASP или у сервера нет программной лицензии.

Активировать лицензию 1С на Linux можно двумя путями. Аппаратный ключ HASP: ставите драйвер, вставляете ключ, проверяете, что его видит система. Программная лицензия: получаете файл по пин-коду, а сервер находит его в каталоге лицензий. Ниже оба пути по шагам, плюс проверка и разбор сбоев.

Всё описанное относится к вашей собственной купленной лицензии. Рабочих способов обхода защиты здесь нет и не будет: «крякнутые» ключи и подмена файлов лицензий ломают сервер, а при проверке грозят штрафами за нелицензионное ПО.

Какую лицензию выбрать для сервера на Linux

Тип лицензии определяет весь порядок действий. Сначала смотрите, что у вас на руках: коробка с ключом-«флешкой» или конверт с пин-кодом.

ТипЧто получаетеКогда подходитМинусы
Аппаратный ключ (USB HASP)Физический ключ с лицензиейСвой сервер или виртуальная машина с пробросом USBКлюч можно потерять, на облачных хостингах USB обычно не пробросить
Сетевой ключ HASPТот же ключ, но раздаётся по сетиКлюч стоит в одной машине, а сервер 1С в другойНужна открытая сеть между машинами и настройка менеджера лицензий
Программная лицензияФайл лицензии по пин-кодуОблако, виртуализация, нет USBПривязана к конфигурации машины: при смене «железа» нужно переактивировать
Какой у вас случай?

Что подготовить на сервере до активации

Активация упирается не в 1С, а в окружение. Проверьте четыре вещи, прежде чем что-то ставить.

  1. Права. Нужен доступ root или sudo. Сервер 1С обычно работает от отдельного пользователя, чаще всего usr1cv8. Лицензия должна быть доступна именно ему.
  2. Версия платформы. Узнайте её командой ls /opt/1cv8/x86_64/ — каталог с номером версии и есть ваша платформа. Драйвер ключа берите ту версию, что идёт с дистрибутивом именно этого релиза.
  3. Время. Рассинхрон часов на несколько минут не ломает аппаратный ключ, но портит связь с сервисом активации. Проверьте timedatectl.
  4. Сеть. Для программной лицензии серверу нужен выход в интернет к сервису лицензирования. Для сетевого ключа нужна открытая связь с машиной, где стоит ключ.

Отдельно решите, как будете запускать сервер: от выделенного пользователя или от root. Выделенный пользователь безопаснее, но ему придётся выдать права на каталог лицензий. Запуск от root проще, но так делать на рабочем сервере не стоит.

Два пакета сразу не ставьте, если не уверены. Конфликтующие драйверы ключа — частая причина того, что система «не видит» устройство.

# версия платформы
ls /opt/1cv8/x86_64/

# служба сервера 1С и под кем она работает
systemctl status srv1cv83
ps -o user= -C ragent

Если служба называется иначе, посмотрите список: systemctl list-units | grep -i 1c.

Аппаратный ключ HASP: драйвер и проверка

Ключ ничего не даст без драйвера. В дистрибутиве платформы для Linux драйвер ключа поставляется отдельным пакетом, его нужно установить вручную: сам по себе он не появляется.

Порядок такой.

  1. Скачайте с портала поддержки дистрибутив серверной платформы под ваш дистрибутив Linux (deb для Ubuntu и Debian, rpm для CentOS и подобных).
  2. Найдите в архиве пакет драйвера защиты, обычно в названии есть aksusbd.
  3. Установите его: sudo dpkg -i aksusbd_*.deb или sudo rpm -ivh aksusbd-*.rpm.
  4. Убедитесь, что служба драйвера запущена: systemctl status aksusbd.
  5. Вставьте ключ в USB-порт сервера. Если ключ уже стоял, вытащите и вставьте снова.
  6. Проверьте, что система видит устройство: lsusb. В списке должна быть строка с Aladdin или SafeNet.

Не вставляйте ключ в виртуальную машину «на живую», пока не проверили, что гипервизор пробрасывает USB целиком. Частая ситуация: ключ виден на хосте, а гость его не получает.

Теперь откройте веб-интерфейс менеджера лицензий драйвера. Он доступен на самой машине по адресу http://localhost:1947. В разделе с ключами должна появиться запись вашего HASP. Если её нет, смотрите «Типичные сбои» ниже.

Дальше перезапустите сервер 1С, чтобы он заново опросил ключ:

sudo systemctl restart srv1cv83

Сетевой ключ: как раздать лицензию по сети

Сетевой ключ стоит в одной машине, а сервер 1С запущен на другой. Работает это через тот же менеджер лицензий драйвера.

Схема из двух частей.

На машине с ключом:

  • установите драйвер так же, как в предыдущем разделе;
  • откройте http://localhost:1947 и найдите настройки доступа. Разрешите подключение с удалённых машин;
  • проверьте, что порт 1947 (TCP и UDP) не закрыт файрволом.

На сервере 1С:

  • установите тот же драйвер;
  • в менеджере лицензий укажите адрес машины с ключом в настройках удалённых источников;
  • проверьте, что ключ появился в списке доступных.

Для проверки с сервера 1С откройте в браузере http://адрес-машины-с-ключом:1947. Если страница не открывается, дело в сети, а не в 1С.

# открыт ли порт на файрволе (ufw)
sudo ufw allow 1947
# достижима ли машина с ключом
nc -vz 192.168.1.50 1947

Адрес в примере условный, подставьте свой.

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

Программная лицензия на Linux: активация по пин-коду

Программная лицензия не требует USB. Вы получаете файл лицензии, который привязан к параметрам машины. Для активации понадобятся пин-код из конверта или личного кабинета и регистрационные данные организации.

Активировать можно двумя способами.

Через консольную утилиту ring

В поставке платформы есть утилита ring, у неё есть режим работы с лицензиями. Это путь для сервера без графики.

# справка по лицензиям
ring help license

# список полученных лицензий
ring license list

Для активации передайте пин-код и данные владельца. Точный набор параметров зависит от версии утилиты, поэтому берите его из справки: ring help license. Не копируйте команды из чужих заметок: параметры менялись между версиями.

Через клиент 1С

Запустите клиент (конфигуратор или тонкий клиент) на машине с графикой, откройте базу и при запросе лицензии выберите получение программной лицензии. Введите пин-код и данные. Файл лицензии сохранится на этой машине.

Но для сервера нужна лицензия именно на сервере. Если вы активировали в клиенте на рабочем компьютере, сервер её не увидит.

После активации файл лицензии лежит в каталоге лицензий платформы. На Linux это обычно /var/1C/licenses. Проверьте, что пользователь, от которого работает сервер, может читать каталог:

ls -la /var/1C/licenses
sudo chown -R usr1cv8:grp1cv8 /var/1C/licenses

Имена пользователя и группы в примере стандартные для установки из пакетов. У вас они могут отличаться.

Сохраните пин-код и данные активации в надёжном месте. При смене железа или переустановке системы программную лицензию придётся получать заново, и пин-код нужен будет снова. Количество повторных активаций ограничено.

Как проверить, что лицензия подхватилась

Лицензия «есть» и лицензия «работает» — разные вещи. Проверка занимает пять минут.

  • Драйвер и ключ. lsusb показывает ключ, а http://localhost:1947 — его запись.
  • Программная лицензия. ring license list выводит полученные лицензии.
  • Сервер 1С. В консоли администрирования кластера откройте нужный сервер и посмотрите, сколько лицензий он видит и сколько занято.
  • Практика. Запустите клиент, подключитесь к базе и откройте её. Если лицензия не найдена, 1С скажет об этом сразу.

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

Количество одновременных подключений определяется лицензией. Если вы купили пакет на 10 пользователей, а подключились одиннадцатый, получите отказ. Это нормально, а не ошибка активации.

Типичные сбои и что с ними делать

Список симптомов короткий, причины повторяются.

Диагностика: выберите симптом

Если ничего не помогло, соберите диагностику: версию платформы, версию драйвера, вывод lsusb и ring license list. С ними вопрос в поддержку получит нормальный ответ, а не просьбу «уточните детали».

Переезд, обновление и обслуживание: чтобы лицензия не пропала

Лицензия чаще всего «слетает» не при первой установке, а позже: при переносе сервера, обновлении системы или замене диска. Заранее продумайте эти ситуации.

Перед переездом на другой сервер

  1. Выпишите, какой у вас тип лицензии и где лежит пин-код.
  2. Для аппаратного ключа: физически переставьте ключ в новую машину и поставьте драйвер заново.
  3. Для сетевого ключа: поменяйте адрес источника в менеджере лицензий на новой машине.
  4. Для программной лицензии: запросите повторную активацию по тому же пин-коду. Старый сервер после этого лицензию лучше не запускать.

Перед обновлением платформы или системы

Обновление ядра или дистрибутива иногда ломает драйвер ключа: пакет собирается под конкретную версию системы. После обновления проверьте цепочку: systemctl status aksusbd, затем lsusb, затем веб-интерфейс на порту 1947. Это занимает две минуты и экономит вечер.

Обновление платформы 1С на лицензию обычно не влияет, но служба сервера после него перезапускается. Убедитесь, что она поднялась и снова видит ключ.

Что настроить, чтобы заметить сбой раньше пользователей

  • Включите автозапуск службы драйвера: sudo systemctl enable aksusbd. Иначе после перезагрузки сервера ключ «пропадёт».
  • Добавьте в мониторинг проверку порта 1947 и статуса службы сервера 1С.
  • Заведите в документации сервера короткую карточку: тип лицензии, где ключ, где пин-код, кто отвечает.
  • Для критичной базы держите запасной ключ или заранее договорённый порядок повторной активации.

Если лицензия программная, а сервер виртуальный, зафиксируйте в заметках параметры ВМ: число процессоров, объём памяти, сетевой адаптер. При сильных изменениях лицензия может перестать подходить, и причину будет проще найти.

Частые вопросы

Можно ли использовать один ключ HASP на двух серверах?
Один физический ключ даёт лицензию там, где он виден. Через сетевой доступ его могут использовать несколько машин, но общее число пользователей ограничено самой лицензией.
Нужен ли драйвер, если лицензия программная?
Нет. Драйвер HASP нужен только для аппаратного ключа. Для программной лицензии достаточно файла лицензии в каталоге.
Что будет, если сменить процессор или материнскую плату?
Программная лицензия может перестать подходить: она привязана к параметрам машины. Придётся активировать её повторно. Аппаратный ключ от «железа» не зависит.
Работает ли ключ HASP в Docker?
Только если пробросить USB-устройство в контейнер и драйвер установлен на хосте. Проще всего держать драйвер на хосте и проверять, видит ли контейнер устройство.
Где хранить резервную копию лицензии?
Копию файла программной лицензии положите в защищённое место. Но это не отменяет пин-код: повторное получение всё равно потребует его.