Лечим проблему с агентом GLPI Agent в Windows, когда на сервере незнакомый сертификат. При этом в логе C:\Program Files\GLPI-Agent\logs\glpi-agent.log можно увидеть ошибку вида:
[Mon May 27 14:31:14 2024][error] [http client] internal response: 500 Can't connect to glpi-server.domain.local:443 (Bad file descriptor), SSL connect attempt failed error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
[Mon May 27 14:31:14 2024][error] No supported answer from server at https://glpi-server.domain.local/marketplace/glpiinventory/
Проблема связана с тем, что операционная система Windows не доверяет SSL сертификату вашего сервера GLPI. Можно это проверить, открыв в браузере путь к серверу, который вы добавили в конфигурационный файл при установке агента:
https://glpi-server.domain.local/marketplace/glpiinventory/
Причины могут быть разные, к примеру, вы инвентаризируете разные домены и сервер в одном домене не имеет соответствующих сертификатов для домена, в котором выпущен сертификат GLPI сервера. Или если вы используете на сервере GLPI самоподписанные сертификаты.
Что можно сделать?
GLPI Agent можно запустить в Windows с опцией no-ssl-check, в этом случае агент не будет проверять сертификат GLPI сервера. Запускаем реестр:
regedit
Находим ветку
\HKEY_LOCAL_MACHINE\SOFTWARE\GLPI-Agent
Устанавливаем параметр no-ssl-check равным 1.
Перезапускаем службу GLPI Agent.
Дожидаемся синхронизации агента. Или форсируем событие через браузер:
http://localhost:62354/
Force an Inventory.
И в логах у нас:
[Mon May 27 14:45:12 2024][info] [http client] SSL Client warning: Peer certificate not verified
[Mon May 27 14:45:12 2024][info] [http client] SSL Client info: Cert-Issuer: '/CN=DOMAIN-CA', Cert-Subject: '/C=RU/ST=Moscow/L=Moscow/O=Company/OU=IT/CN=glpi-server.company.local', Version: 'TLSv1_3', Cipher: 'TLS_AES_256_GCM_SHA384'
[Mon May 27 14:45:12 2024][info] [http client] SSL server certificate fingerprint: sha256$3b3f7b01a7d5aaf699999999999377777777770d64b0d9c2a7010633f01111111
[Mon May 27 14:45:12 2024][info] [http client] You can set it in conf as 'ssl-fingerprint' and disable 'no-ssl-check' option to trust that server certificate
Всё работает, но в логах подсказывают, что опция no-ssl-check — небезопасна. Лучше взять отпечаток fingerprint, который приведён выше, добавить его в реестре там же в параметр ssl-fingerprint и отключить опцию no-ssl-check.
Получив отпечаток сертификата, вы можете инсталлировать агент на другие машины с опцией:
SSL_FINGERPRINT=fingerprint
(needs MSI installer >= 1.3)
https://glpi-agent.readthedocs.io/en/latest/installation/windows-command-line.html