Ключ HASP вставлен, а 1С его не видит: настраиваем аппаратную защиту с нуля

· 9 мин

Содержание

Чтобы включить аппаратную лицензию 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. Откройте Панель управления → Программы и компоненты.
  2. Найдите 1С:Предприятие 8 нужной версии, нажмите «Изменить».
  3. Дойдите до последнего шага и отметьте установку драйвера защиты.

Вариант Б: отдельным установщиком из командной строки

Скачайте актуальный пакет 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. На компьютер с ключом установите драйвер (шаг 1).
  2. Установите HASP License Manager (дистрибутив lmsetup), режим — «Service», чтобы он работал как служба Windows и стартовал без входа пользователя.
  3. Откройте 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)

Однопользовательский ключ для работы через удалённый рабочий стол не подходит. Схема для терминального сервера такая:

  1. Многопользовательский ключ вставляют в сам терминальный сервер или в другой компьютер сети.
  2. На компьютере с ключом работают драйвер и HASP License Manager.
  3. В 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С.

Вопросы, которые задают после настройки

Нужно ли активировать аппаратный ключ 1С через интернет?
Нет. В отличие от программной лицензии, ключ не активируют пин-кодом. Достаточно драйвера, а для сетевого ключа — ещё License Manager и адреса в nethasp.ini.
Можно ли перенести ключ на другой компьютер?
Да, ключ не привязан к оборудованию. Установите драйвер на новом компьютере, вставьте ключ, и если он сетевой — поменяйте адрес в nethasp.ini у клиентов.
Что будет, если вынуть ключ во время работы?
Платформа периодически проверяет наличие лицензии. Когда ключ пропадает, пользователь получает сообщение об отсутствии ключа, и сеанс завершается. Несохранённые данные теряются.
Работает ли сетевой ключ через VPN?
Да, если клиент видит компьютер с ключом по порту 475. Укажите IP-адрес в NH_SERVER_ADDR, отключите широковещательный поиск и при проблемах переключитесь на TCP.
Сколько ключей можно подключить к одному серверу?
Несколько ключей разных серий — можно, их лицензии складываются. Два ключа одной серии на один компьютер ставить нельзя: менеджер увидит только один.