Ключ HASP вставлен, а 1С его не видит: настраиваем аппаратную защиту с нуля
Содержание
Чтобы включить аппаратную лицензию 1С, вставьте USB-ключ, установите драйвер Sentinel (HASP) и убедитесь, что ключ виден на странице http://localhost:1947. Для сетевого ключа добавьте ещё службу HASP License Manager на компьютере с ключом и пропишите его адрес в файле nethasp.ini на клиентах. Никакой «активации» с вводом пин-кода у аппаратного ключа нет.
Частое заблуждение: раз ключ вставлен, 1С должна заработать сама. Без драйвера Windows видит просто неизвестное USB-устройство, а платформа выдаёт Не найден ключ защиты программы или полученная программная лицензия!. Порядок всегда один: драйвер, затем служба, затем сеть.
Какой у вас ключ и куда его вставлять
Сначала определите тип ключа. От него зависит, где его подключать и что ставить. Тип указан в документах комплекта и в описании поставки.
| Ключ | Для чего | Куда вставлять | Что нужно кроме драйвера |
|---|---|---|---|
| Однопользовательский | 1 пользователь на одном ПК | В компьютер, где запускают 1С | Ничего |
| Многопользовательский (сетевой) | 5, 10, 20, 50 и больше клиентских лицензий | В любой компьютер сети, обычно сервер | HASP License Manager + nethasp.ini |
| Ключ сервера 1С | Лицензия на сам сервер 1С:Предприятия | В компьютер, где работает сервер 1С | Ничего, сервер находит его сам |
Перед установкой проверьте физику:
- 🔌 вставляйте ключ напрямую в порт материнской платы, без USB-удлинителей и пассивных хабов;
- 💡 светодиод на ключе должен гореть ровно — если не горит, попробуйте другой порт;
- 🖥️ на сервере запомните, в какой порт вставлен ключ: при переносе в другой порт драйвер иногда заново определяет устройство;
- 🔒 на виртуальной машине ключ сам по себе не появится — нужен проброс USB (раздел про терминальный режим ниже).
Не вставляйте два одинаковых сетевых ключа в один компьютер. Менеджер лицензий увидит только один из них, лицензии не суммируются. Ключи одной серии разносят по разным машинам.
Шаг 1. Установите драйвер ключа защиты Sentinel (HASP)
Современные ключи 1С выпускаются на платформе Sentinel HL (бывший HASP HL). Драйвер называется Sentinel LDK Run-time Environment. Он подходит и для старых ключей HASP4.
Вариант А: из установщика платформы
При установке платформы 1С:Предприятие 8.3 на последнем шаге мастер предлагает установить драйвер защиты. Если этот флажок тогда сняли:
- Откройте
Панель управления → Программы и компоненты. - Найдите 1С:Предприятие 8 нужной версии, нажмите «Изменить».
- Дойдите до последнего шага и отметьте установку драйвера защиты.
Вариант Б: отдельным установщиком из командной строки
Скачайте актуальный пакет Sentinel LDK Run-time с сайта производителя ключей (Thales). В нём есть консольный установщик haspdinst.exe. Запустите командную строку от имени администратора:
:: удалить старый драйвер, если он был
haspdinst.exe -r
:: установить драйвер заново
haspdinst.exe -i
После установки выньте ключ и вставьте снова. Перезагрузка компьютера после смены драйвера обязательна, если до этого стояла старая версия — иначе служба будет работать со старыми файлами.
Если на компьютере жил антивирус с модулем контроля USB-устройств, добавьте ключ в доверенные. Такие модули блокируют ключ молча, без сообщений.
Linux
На Linux ставят пакет aksusbd из того же Run-time Environment (есть сборки .deb и .rpm). После установки проверьте, что служба aksusbd запущена, и откройте http://localhost:1947 в браузере на этом же сервере.
Шаг 2. Проверьте, что Windows и драйвер видят ключ
Проверка занимает минуту и сразу показывает, на каком уровне проблема.
Диспетчер устройств
Откройте devmgmt.msc и раскройте ветку «Контроллеры USB». При рабочем драйвере там появляется устройство с названием вида SafeNet Inc. USB Key или SafeNet Inc. HASP Key. Жёлтый треугольник или «Неизвестное устройство» означают, что драйвер не встал.
Страница Sentinel Admin Control Center
Драйвер поднимает веб-интерфейс на порту 1947. Откройте в браузере:
http://localhost:1947
Слева выберите раздел со списком ключей (Sentinel Keys). Ваш ключ должен быть в таблице со своим идентификатором. Если таблица пустая, а в диспетчере устройств ключ есть — переустановите драйвер с удалением старого (haspdinst.exe -r, затем -i).
Страница на 1947 показывает только факт подключения ключа. Сколько сетевых лицензий занято, она для 1С не покажет — это видно в Aladdin Monitor (см. шаг 4).
Проверка в самой 1С
Для однопользовательского ключа этого достаточно: запустите базу. Если она открылась, лицензия получена. Ключ должен оставаться в порту всё время работы — без него платформа завершит сеанс при очередной проверке.
Шаг 3. Включите сетевую лицензию: HASP License Manager
Для многопользовательского ключа одного драйвера мало. Клиенты по сети обращаются к службе HASP License Manager, а уже она — к ключу.
Установка службы
- На компьютер с ключом установите драйвер (шаг 1).
- Установите HASP License Manager (дистрибутив
lmsetup), режим — «Service», чтобы он работал как служба Windows и стартовал без входа пользователя. - Откройте
services.mscи проверьте, что служба «HASP Loader» запущена, тип запуска — «Автоматически».
Настройка сервера лицензий: nhsrv.ini
Файл nhsrv.ini лежит в папке установки License Manager. Обычно его не трогают, но если в компьютере несколько сетевых карт, укажите адрес, на котором служба принимает запросы:
[NHS_SERVER]
NHS_IP_LIMIT = 192.168.1.*
NHS_ADAPTER = 192.168.1.10
После правки перезапустите службу «HASP Loader». Перезапуск оборвёт выдачу лицензий: уже открытые сеансы могут потерять ключ — делайте это, когда пользователи вышли из 1С.
Настройка клиентов: nethasp.ini
На каждом компьютере, где запускают 1С, откройте файл nethasp.ini в каталоге conf платформы, обычно C:\Program Files\1cv8\conf\nethasp.ini. Если файла нет — создайте. Пропишите адрес компьютера с ключом:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = UDP
NH_USE_BROADCAST = Disabled
Без явного адреса клиент ищет менеджер лицензий широковещательным запросом. В простой сети это срабатывает, но медленно, а за маршрутизатором и в VPN не срабатывает вообще.
Если UDP режут сетевые устройства, поменяйте NH_TCPIP_METHOD = TCP. Порт тот же — 475.
Брандмауэр
На компьютере с ключом разрешите входящие подключения на порт 475 по UDP и TCP. Проще всего — правилом для программы nhsrvw32.exe (исполняемый файл License Manager) или для порта. Через PowerShell от администратора:
New-NetFirewallRule -DisplayName "HASP LM 475 UDP" -Direction Inbound -Protocol UDP -LocalPort 475 -Action Allow
New-NetFirewallRule -DisplayName "HASP LM 475 TCP" -Direction Inbound -Protocol TCP -LocalPort 475 -Action Allow
Шаг 4. Диагностика: кто занял лицензии и почему клиент не видит ключ
Aladdin Monitor
Утилита Aladdin Monitor (aksmon) показывает все менеджеры лицензий в сети, ключи на них и число занятых лицензий. Поставьте её на любой компьютер, укажите адрес сервера ключа. В списке ключа видно, сколько сессий сейчас держат лицензию и с каких адресов.
Это главный инструмент для ситуации «у нас ключ на 10 пользователей, а седьмой уже не входит»: обычно лицензии держат зависшие сеансы.
Проверка порта с клиента
Если клиент не видит ключ, проверьте сеть до сервера ключа. Для TCP:
Test-NetConnection 192.168.1.10 -Port 475
TcpTestSucceeded : False — дело в брандмауэре или маршрутизации, а не в 1С. UDP так не проверить, поэтому при сомнениях переключите клиента на TCP в nethasp.ini и проверьте снова.
Параметр UseHwLicenses
В файле conf.cfg платформы (каталог conf) может стоять строка UseHwLicenses=0. Она запрещает 1С искать аппаратные ключи. Для аппаратной защиты значение должно быть 1 или строки не должно быть вовсе.
UseHwLicenses=1
Терминальный сервер, виртуализация и клиент-серверная база
Терминальный сервер (RDP)
Однопользовательский ключ для работы через удалённый рабочий стол не подходит. Схема для терминального сервера такая:
- Многопользовательский ключ вставляют в сам терминальный сервер или в другой компьютер сети.
- На компьютере с ключом работают драйвер и HASP License Manager.
- В
nethasp.iniна терминальном сервере указывают адрес менеджера лицензий. Если ключ в этом же сервере —NH_SERVER_ADDR = 127.0.0.1.
Каждый пользователь, открывший 1С в терминальной сессии, занимает одну клиентскую лицензию ключа.
Виртуальные машины
Гипервизор не отдаёт USB-устройства гостю автоматически. Варианты:
- 🔁 проброс USB-порта хоста в виртуальную машину средствами гипервизора;
- 🌐 USB-over-IP: аппаратный сетевой USB-хаб или программа, которая передаёт порт по сети;
- 🧭 сетевой ключ на физическом компьютере с License Manager, а в виртуальной машине только
nethasp.iniс адресом — самый простой и устойчивый путь.
При миграции виртуальной машины на другой хост проброшенный USB теряется. Для серверов, которые переезжают между хостами, выбирайте третий вариант.
Клиент-серверный вариант
В клиент-серверной базе нужны два вида лицензий:
- 🖥️ лицензия на сервер 1С:Предприятия — серверный ключ вставляют в компьютер, где работает служба сервера 1С, и ставят туда драйвер;
- 👥 клиентские лицензии — сетевой ключ с License Manager, как в шаге 3.
Клиентскую лицензию может получать либо сам клиент (тогда nethasp.ini нужен на каждом рабочем месте), либо сервер 1С за клиента. Второй вариант включается в консоли администрирования серверов, в свойствах информационной базы, параметром выдачи лицензий сервером 1С:Предприятия. Тогда nethasp.ini правят только на сервере 1С, а клиентам ключ вообще не нужен — удобно для удалённых пользователей и веб-клиента.
Частые ошибки при включении аппаратной лицензии
- ❌ Ставить License Manager на каждый клиент. Служба нужна только там, где физически вставлен сетевой ключ. На клиентах — только
nethasp.ini. - ❌ Править
nethasp.iniне той версии. Если на компьютере несколько версий платформы, проверьте, что файл лежит в общем каталогеconf, из которого читает запускаемая версия. - ❌ Держать программную и аппаратную лицензию «на всякий случай» без учёта. Платформа сначала ищет программные лицензии, затем ключи. В итоге непонятно, что именно занято, и сводка по пользователям не сходится.
- ❌ Перезапускать HASP Loader посреди рабочего дня. Пользователи начнут вылетать с ошибкой ключа, даже если сам ключ в порядке.
- ❌ Подключать ключ через USB-удлинитель в серверной. Ключ периодически «отваливается», и это выглядит как случайные сбои 1С.