Лицензия 1С на сервере Linux: ключ HASP или программная активация
Содержание
Поставили сервер 1С на Ubuntu, опубликовали базу, а пользователи получают «Не найден ключ защиты». Сервер работает, лицензии нет. Причина почти всегда одна из двух: в системе нет драйвера ключа HASP или у сервера нет программной лицензии.
Активировать лицензию 1С на Linux можно двумя путями. Аппаратный ключ HASP: ставите драйвер, вставляете ключ, проверяете, что его видит система. Программная лицензия: получаете файл по пин-коду, а сервер находит его в каталоге лицензий. Ниже оба пути по шагам, плюс проверка и разбор сбоев.
Всё описанное относится к вашей собственной купленной лицензии. Рабочих способов обхода защиты здесь нет и не будет: «крякнутые» ключи и подмена файлов лицензий ломают сервер, а при проверке грозят штрафами за нелицензионное ПО.
Какую лицензию выбрать для сервера на Linux
Тип лицензии определяет весь порядок действий. Сначала смотрите, что у вас на руках: коробка с ключом-«флешкой» или конверт с пин-кодом.
| Тип | Что получаете | Когда подходит | Минусы |
|---|---|---|---|
| Аппаратный ключ (USB HASP) | Физический ключ с лицензией | Свой сервер или виртуальная машина с пробросом USB | Ключ можно потерять, на облачных хостингах USB обычно не пробросить |
| Сетевой ключ HASP | Тот же ключ, но раздаётся по сети | Ключ стоит в одной машине, а сервер 1С в другой | Нужна открытая сеть между машинами и настройка менеджера лицензий |
| Программная лицензия | Файл лицензии по пин-коду | Облако, виртуализация, нет USB | Привязана к конфигурации машины: при смене «железа» нужно переактивировать |
Что подготовить на сервере до активации
Активация упирается не в 1С, а в окружение. Проверьте четыре вещи, прежде чем что-то ставить.
- Права. Нужен доступ
rootилиsudo. Сервер 1С обычно работает от отдельного пользователя, чаще всегоusr1cv8. Лицензия должна быть доступна именно ему. - Версия платформы. Узнайте её командой
ls /opt/1cv8/x86_64/— каталог с номером версии и есть ваша платформа. Драйвер ключа берите ту версию, что идёт с дистрибутивом именно этого релиза. - Время. Рассинхрон часов на несколько минут не ломает аппаратный ключ, но портит связь с сервисом активации. Проверьте
timedatectl. - Сеть. Для программной лицензии серверу нужен выход в интернет к сервису лицензирования. Для сетевого ключа нужна открытая связь с машиной, где стоит ключ.
Отдельно решите, как будете запускать сервер: от выделенного пользователя или от root. Выделенный пользователь безопаснее, но ему придётся выдать права на каталог лицензий. Запуск от root проще, но так делать на рабочем сервере не стоит.
Два пакета сразу не ставьте, если не уверены. Конфликтующие драйверы ключа — частая причина того, что система «не видит» устройство.
# версия платформы
ls /opt/1cv8/x86_64/
# служба сервера 1С и под кем она работает
systemctl status srv1cv83
ps -o user= -C ragent
Если служба называется иначе, посмотрите список: systemctl list-units | grep -i 1c.
Аппаратный ключ HASP: драйвер и проверка
Ключ ничего не даст без драйвера. В дистрибутиве платформы для Linux драйвер ключа поставляется отдельным пакетом, его нужно установить вручную: сам по себе он не появляется.
Порядок такой.
- Скачайте с портала поддержки дистрибутив серверной платформы под ваш дистрибутив Linux (deb для Ubuntu и Debian, rpm для CentOS и подобных).
- Найдите в архиве пакет драйвера защиты, обычно в названии есть
aksusbd. - Установите его:
sudo dpkg -i aksusbd_*.debилиsudo rpm -ivh aksusbd-*.rpm. - Убедитесь, что служба драйвера запущена:
systemctl status aksusbd. - Вставьте ключ в USB-порт сервера. Если ключ уже стоял, вытащите и вставьте снова.
- Проверьте, что система видит устройство:
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. С ними вопрос в поддержку получит нормальный ответ, а не просьбу «уточните детали».
Переезд, обновление и обслуживание: чтобы лицензия не пропала
Лицензия чаще всего «слетает» не при первой установке, а позже: при переносе сервера, обновлении системы или замене диска. Заранее продумайте эти ситуации.
Перед переездом на другой сервер
- Выпишите, какой у вас тип лицензии и где лежит пин-код.
- Для аппаратного ключа: физически переставьте ключ в новую машину и поставьте драйвер заново.
- Для сетевого ключа: поменяйте адрес источника в менеджере лицензий на новой машине.
- Для программной лицензии: запросите повторную активацию по тому же пин-коду. Старый сервер после этого лицензию лучше не запускать.
Перед обновлением платформы или системы
Обновление ядра или дистрибутива иногда ломает драйвер ключа: пакет собирается под конкретную версию системы. После обновления проверьте цепочку: systemctl status aksusbd, затем lsusb, затем веб-интерфейс на порту 1947. Это занимает две минуты и экономит вечер.
Обновление платформы 1С на лицензию обычно не влияет, но служба сервера после него перезапускается. Убедитесь, что она поднялась и снова видит ключ.
Что настроить, чтобы заметить сбой раньше пользователей
- Включите автозапуск службы драйвера:
sudo systemctl enable aksusbd. Иначе после перезагрузки сервера ключ «пропадёт». - Добавьте в мониторинг проверку порта
1947и статуса службы сервера 1С. - Заведите в документации сервера короткую карточку: тип лицензии, где ключ, где пин-код, кто отвечает.
- Для критичной базы держите запасной ключ или заранее договорённый порядок повторной активации.
Если лицензия программная, а сервер виртуальный, зафиксируйте в заметках параметры ВМ: число процессоров, объём памяти, сетевой адаптер. При сильных изменениях лицензия может перестать подходить, и причину будет проще найти.