You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ru/2-farm/lessons/6-keep-your-plant-secure/single-board-computer-x509.md

71 lines
5.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9aea84bcc7520222b0e1c50469d62d6a",
"translation_date": "2025-08-26T23:07:08+00:00",
"source_file": "2-farm/lessons/6-keep-your-plant-secure/single-board-computer-x509.md",
"language_code": "ru"
}
-->
# Использование сертификата X.509 в коде устройства - Виртуальное IoT-устройство и Raspberry Pi
В этой части урока вы подключите свое виртуальное IoT-устройство или Raspberry Pi к IoT Hub, используя сертификат X.509.
## Подключение устройства к IoT Hub
Следующий шаг — подключить ваше устройство к IoT Hub с использованием сертификатов X.509.
### Задача - подключение к IoT Hub
1. Скопируйте файлы ключа и сертификата в папку, содержащую код вашего IoT-устройства. Если вы используете Raspberry Pi через VS Code Remote SSH и создали ключи на своем ПК или Mac, вы можете перетащить файлы в проводник в VS Code, чтобы скопировать их.
1. Откройте файл `app.py`.
1. Чтобы подключиться с использованием сертификата X.509, вам потребуется имя хоста IoT Hub и сам сертификат X.509. Начните с создания переменной, содержащей имя хоста, добавив следующий код перед созданием клиента устройства:
```python
host_name = "<host_name>"
```
Замените `<host_name>` на имя хоста вашего IoT Hub. Вы можете найти его в разделе `HostName` в строке подключения `connection_string`. Это будет имя вашего IoT Hub, заканчивающееся на `.azure-devices.net`.
1. Ниже этого объявите переменную с идентификатором устройства:
```python
device_id = "soil-moisture-sensor-x509"
```
1. Вам потребуется экземпляр класса `X509`, содержащий файлы сертификата X.509. Добавьте `X509` в список классов, импортируемых из модуля `azure.iot.device`:
```python
from azure.iot.device import IoTHubDeviceClient, Message, MethodResponse, X509
```
1. Создайте экземпляр класса `X509`, используя ваши файлы сертификата и ключа, добавив этот код ниже объявления `host_name`:
```python
x509 = X509("./soil-moisture-sensor-x509-cert.pem", "./soil-moisture-sensor-x509-key.pem")
```
Это создаст класс `X509`, используя файлы `soil-moisture-sensor-x509-cert.pem` и `soil-moisture-sensor-x509-key.pem`, созданные ранее.
1. Замените строку кода, которая создает `device_client` из строки подключения, на следующую:
```python
device_client = IoTHubDeviceClient.create_from_x509_certificate(x509, host_name, device_id)
```
Это подключит устройство с использованием сертификата X.509 вместо строки подключения.
1. Удалите строку с переменной `connection_string`.
1. Запустите ваш код. Следите за сообщениями, отправляемыми в IoT Hub, и отправляйте запросы на выполнение методов, как и раньше. Вы увидите, как устройство подключается и отправляет данные о влажности почвы, а также принимает запросы на выполнение методов.
> 💁 Вы можете найти этот код в папке [code/pi](../../../../../2-farm/lessons/6-keep-your-plant-secure/code/pi) или [code/virtual-device](../../../../../2-farm/lessons/6-keep-your-plant-secure/code/virtual-device).
😀 Программа вашего датчика влажности почвы подключена к IoT Hub с использованием сертификата X.509!
---
**Отказ от ответственности**:
Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.