avp
22.Сентябрь.2024 16:06:54
1
Обнаружил, что WB стал “красным” в интерфейсе
Перезапустил сервис, не помогло
Переустановил пакет, не помогло
Удалил из интерфейса контроллер, не помогло
root@wirenboard-ABEMEKY7:~# wb-cloud-agent
Traceback (most recent call last):
File "/usr/bin/wb-cloud-agent", line 9, in <module>
sys.exit(main.main())
File "/usr/lib/python3.9/dist-packages/wb/cloud_agent/main.py", line 411, in main
make_start_up_request(settings, mqtt)
File "/usr/lib/python3.9/dist-packages/wb/cloud_agent/main.py", line 280, in make_start_up_request
raise ValueError("Not a 200 status while making start up request: " + str(http_status))
ValueError: Not a 200 status while making start up request: 400
Куда копать? Кажется, что началось после обновления (apt update && apt upgrade), но не уверен
Добрый день.
Проверьте, есть ли доступ выполнив
curl --cert /var/lib/wb-cloud-agent/device_bundle.crt.pem --key ATECCx08:00:02:C0:00 --engine ateccx08 --key-type ENG -w {"code":"%{response_code}"} https://agent.wirenboard.cloud/api-agent/v1/events/ -v
Ну и пришлите, пожалуйста, архив с диагностической информацией контроллера. Создание архива описано в документации .
avp
23.Сентябрь.2024 17:52:54
4
root@wirenboard-ABEMEKY7:~# curl --cert /var/lib/wb-cloud-agent/device_bundle.crt.pem --key ATECCx08:00:02:C0:00 --engine ateccx08 --key-type ENG -w {"code":"%{response_code}"} https://agent.wirenboard.cloud/api-agent/v1/events/ -v
* Trying 5.35.4.252:443...
* Connected to agent.wirenboard.cloud (5.35.4.252) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* failed to load private key from crypto engine
* Closing connection 0
curl: (58) failed to load private key from crypto engine
avp
23.Сентябрь.2024 17:58:00
7
А как загрузить диагностический архив, чтобы он не был публичным?
avp
24.Сентябрь.2024 08:06:40
8
Попробовал выполнить ту же команду на контроллере, нормально работающим с облаком - ошибка та же
Проверяю у себя:
curl --cert /var/lib/wb-cloud-agent/device_bundle.crt.pem --key ATECCx08:00:02:C0:00 --engine ateccx08 --key-type ENG -w {"code":"%{response_code}"} https://agent.wirenboard.cloud/api-agent/v1/events/ -v
* Trying 5.35.4.252:443...
* Trying 5.35.4.252:443...
* Connected to agent.wirenboard.cloud (5.35.4.252) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Request CERT (13):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Certificate (11):
* TLSv1.3 (OUT), TLS handshake, CERT verify (15):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=agent.wirenboard.cloud
* start date: Sep 10 21:26:08 2024 GMT
* expire date: Dec 9 21:26:07 2024 GMT
* subjectAltName: host "agent.wirenboard.cloud" matched cert's "agent.wirenboard.cloud"
* issuer: C=US; O=Let's Encrypt; CN=E6
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0xaaaae9145370)
> GET /api-agent/v1/events/ HTTP/2
> Host: agent.wirenboard.cloud
> user-agent: curl/7.74.0
> accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* Connection state changed (MAX_CONCURRENT_STREAMS == 250)!
Нет. Как раз контроллер, который не зарегистрирован в облачном сервисе:
curl --cert /var/lib/wb-cloud-agent/device_bundle.crt.pem --key ATECCx08:00:02:C0:00 --engine ateccx08 --key-type ENG -w {"code":"%{response_code}"} https://agent.wirenboard.cloud/api-agent/v1/events/ -v
* Trying 5.35.4.252:443...
* Connected to agent.wirenboard.cloud (5.35.4.252) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* failed to load private key from crypto engine
* Closing connection 0
curl: (58) failed to load private key from crypto engine
avp
24.Сентябрь.2024 08:36:25
10
А если контроллер нормально работал с облаком, но отвалился?
Куда копать, чтобы полечить доступ к сертифу?
Для начала - проверить что время на контроллере успешно синхронизируется, это совершенно необходимо для работы сертификатов.
Ну и сам сертификат /var/lib/wb-cloud-agent/device_bundle.crt.pem - не пуст?
avp
24.Сентябрь.2024 11:06:54
12
Время в порядке
Как должен выглядеть файл с сертифом?
он сейчас
-----BEGIN CERTIFICATE-----
…
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
…
-----END CERTIFICATE-----
т.е. два блока “CERTIFICATE”
Ну, сертификат - вполне нормально.
Судя по логу - контроллер не имеет доступа к cthdbce/
Он, сам сервис, пингуется?
Проверьте, не пуст ли /etc/wb-cloud-agent.conf
Должно быть
{
"LOG_LEVEL": "INFO",
"CLIENT_CERT_ENGINE_KEY": "ATECCx08:00:02:C0:00"
}
Что выводит просто запущенный
wb-cloud-agent
И что возвращается по
wget https://wirenboard.cloud/ -O -
avp
24.Сентябрь.2024 11:56:11
14
root@wirenboard-ABEMEKY7:~# cat /etc/wb-cloud-agent.conf
{
"LOG_LEVEL": "INFO",
"CLIENT_CERT_ENGINE_KEY": "ATECCx08:00:04:C0:00"
}
BrainRoot:
wb-cloud-agent
root@wirenboard-ABEMEKY7:~# wb-cloud-agent
Traceback (most recent call last):
File "/usr/bin/wb-cloud-agent", line 9, in <module>
sys.exit(main.main())
File "/usr/lib/python3.9/dist-packages/wb/cloud_agent/main.py", line 411, in main
make_start_up_request(settings, mqtt)
File "/usr/lib/python3.9/dist-packages/wb/cloud_agent/main.py", line 280, in make_start_up_request
raise ValueError("Not a 200 status while making start up request: " + str(http_status))
ValueError: Not a 200 status while making start up request: 400
root@wirenboard-ABEMEKY7:~# wget https://wirenboard.cloud/ -O -
--2024-09-24 14:55:39-- https://wirenboard.cloud/
Распознаётся wirenboard.cloud (wirenboard.cloud)… 5.35.4.252
Подключение к wirenboard.cloud (wirenboard.cloud)|5.35.4.252|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 975 [text/html]
Сохранение в: «STDOUT»
- 0%[ ] 0 --.-KB/s <!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- Favicon START -->
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/manifest.webmanifest" />
<!-- Favicon END -->
<title>Wiren Board</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&family=JetBrains+Mono&display=swap"
rel="stylesheet" />
<script type="module" crossorigin src="/assets/index-B3qsng3V.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-JnQD3n6V.css">
</head>
<body>
<div id="app"></div>
</body>
</html>
- 100%[==============================================================================>] 975 --.-KB/s за 0,002s
/2024-09-24 14:55:40 (587 KB/s) - записан в stdout [975/975]
Судя по тому что http отдается - имеет.
Выткните пожалуйста то, что подключено в USB, затем перезапустите контроллер и не подключая выполните еще
i2cdetect -y 2
И покажите результаты.
Ну и сделайте ее один диагностический архив.
avp
24.Сентябрь.2024 13:50:32
17
У меня нет физического доступа к контроллеру
В контроллер воткнуты ИБП Hiden Control HS20-1012Р (12в, 1000Вт) (через через удлинитель USB-UTP-USB, отлично работает с wb-mqtt-serial) и wemos mini (ESP32 через переходник USB-Serial)
root@wirenboard-ABEMEKY7:~# i2cdetect -y 2
Error: Could not open file `/dev/i2c-2' or `/dev/i2c/2': No such file or directory
avp
24.Сентябрь.2024 13:55:43
18
root@wirenboard-ABEMEKY7:~# ls /dev/i2c-
i2c-1 i2c-4 i2c-5 i2c-6 i2c-7
avp
24.Сентябрь.2024 14:07:13
20
root@wirenboard-ABEMEKY7:~# i2cdetect -y 4
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
50: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Отлично. В журналах вывод ядра загажен основательно ошибками от USB устройств - предполагаю что ни и влияют на работу с криптомодулем.
avp
24.Сентябрь.2024 14:33:00
22
Где искать ошибки USB?
Логи в интерфейсе выглядят относительно спокойно
Оба устройства подключены больше года, а криптомодуль отвалился недавно…
avp:
Где искать ошибки USB?
вывод dmesg
можно посмотреть.