<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wiki.i-on.pro/index.php?action=history&amp;feed=atom&amp;title=Shelly_TLS%3A_%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%8B_%D0%B8_%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F</id>
	<title>Shelly TLS: Поддерживаемые сертификаты и конфигурация - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.i-on.pro/index.php?action=history&amp;feed=atom&amp;title=Shelly_TLS%3A_%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%8B_%D0%B8_%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F"/>
	<link rel="alternate" type="text/html" href="http://wiki.i-on.pro/index.php?title=Shelly_TLS:_%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%8B_%D0%B8_%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F&amp;action=history"/>
	<updated>2026-04-21T15:29:46Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>http://wiki.i-on.pro/index.php?title=Shelly_TLS:_%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%8B_%D0%B8_%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=5422&amp;oldid=prev</id>
		<title>imported&gt;Unknown user в 10:08, 11 марта 2026</title>
		<link rel="alternate" type="text/html" href="http://wiki.i-on.pro/index.php?title=Shelly_TLS:_%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%8B_%D0%B8_%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=5422&amp;oldid=prev"/>
		<updated>2026-03-11T10:08:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 13:08, 11 марта 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>imported&gt;Unknown user</name></author>
	</entry>
	<entry>
		<id>http://wiki.i-on.pro/index.php?title=Shelly_TLS:_%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%8B_%D0%B8_%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=962&amp;oldid=prev</id>
		<title>imported&gt;Unknown user в 10:21, 2 марта 2026</title>
		<link rel="alternate" type="text/html" href="http://wiki.i-on.pro/index.php?title=Shelly_TLS:_%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%8B_%D0%B8_%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=962&amp;oldid=prev"/>
		<updated>2026-03-02T10:21:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;В этой статье объясняется, какие TLS-сертификаты и закрытые ключи принимают устройства Shelly, как их подготовить и загрузить, а также где они используются (например, MQTT через TLS/mTLS и, начиная с версии 1.8.0,&lt;br /&gt;
локальный веб-интерфейс через HTTPS для устройств Gen3 и более новых версий). Для получения общей информации о безопасности/RED см. нашу сопутствующую статью:&lt;br /&gt;
[https://kb.shelly.cloud/knowledge-base/kbuca-what-you-need-to-know-shelly-and-eu-red &amp;#039;&amp;#039;Что вам нужно знать – Shelly и EU RED EN 18031-1&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
== Краткое руководство ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Файлы/контейнеры:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;PEM&amp;#039;&amp;#039;&amp;#039; ✅, &amp;#039;&amp;#039;&amp;#039;DER&amp;#039;&amp;#039;&amp;#039; ✅, &amp;#039;&amp;#039;&amp;#039;PKCS#12/PFX&amp;#039;&amp;#039;&amp;#039; ⚠️ &amp;#039;&amp;#039;(&amp;#039;&amp;#039; Пользовательский интерфейс устройства &amp;#039;&amp;#039;&amp;#039;не импортирует PFX&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;используйте PEM/DER вместо него&amp;#039;&amp;#039;&amp;#039; .)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Закрытые ключи:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;PKCS#8 (незашифрованный)&amp;#039;&amp;#039;&amp;#039; ✅, &amp;#039;&amp;#039;&amp;#039;PKCS#1 (незашифрованный)&amp;#039;&amp;#039;&amp;#039; ✅, &amp;#039;&amp;#039;&amp;#039;зашифрованные ключи&amp;#039;&amp;#039;&amp;#039; ❌ &amp;#039;&amp;#039;(нет ввода пароля в пользовательском интерфейсе)&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Алгоритмы:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;RSA-2048&amp;#039;&amp;#039;&amp;#039; ✅, &amp;#039;&amp;#039;&amp;#039;ECDSA P-256/P-384/P-521&amp;#039;&amp;#039;&amp;#039; ✅, &amp;#039;&amp;#039;&amp;#039;Ed25519&amp;#039;&amp;#039;&amp;#039; ❌&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Цепочки:&amp;#039;&amp;#039;&amp;#039; Загрузка &amp;#039;&amp;#039;&amp;#039;листовых + промежуточных&amp;#039;&amp;#039;&amp;#039; (конкатенированных). &amp;#039;&amp;#039;&amp;#039;Не включать корневой&amp;#039;&amp;#039;&amp;#039; . &amp;#039;&amp;#039;&amp;#039;Максимальная глубина промежуточных узлов: 8&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Основные ограничения листового узла:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Не должен&amp;#039;&amp;#039;&amp;#039; быть центром сертификации (CA:TRUE отклоняется).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Проверка:&amp;#039;&amp;#039;&amp;#039; При включенной &amp;#039;&amp;#039;&amp;#039;расширенной безопасности&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;SNI&amp;#039;&amp;#039;&amp;#039; отправлен, &amp;#039;&amp;#039;&amp;#039;имя хоста (SAN/CN)&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;время действия&amp;#039;&amp;#039;&amp;#039; проверены.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Версии TLS:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;TLS 1.2&amp;#039;&amp;#039;&amp;#039; поддерживается; &amp;#039;&amp;#039;&amp;#039;TLS 1.3&amp;#039;&amp;#039;&amp;#039; не включен.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Веб-интерфейс:&amp;#039;&amp;#039;&amp;#039; Начиная с &amp;#039;&amp;#039;&amp;#039;v1.8.0 (Gen3+)&amp;#039;&amp;#039;&amp;#039;, поддерживается HTTPS, включая пользовательские сертификаты HTTPS (самоподписанные или частные PKI).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Примечание по эксплуатации:&amp;#039;&amp;#039;&amp;#039; Для применения новых TLS-материалов может потребоваться перезагрузка устройства.&lt;br /&gt;
&lt;br /&gt;
== Поддерживается и не поддерживается (матрица) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Область&lt;br /&gt;
! Поддерживается&lt;br /&gt;
! Не поддерживается / Примечания&lt;br /&gt;
|-&lt;br /&gt;
| Контейнеры сертификатов&lt;br /&gt;
| PEM (.pem, .crt, .cer), DER (.der)&lt;br /&gt;
| Загрузка PKCS#12/PFX не поддерживается пользовательским интерфейсом; сначала экспортируйте в PEM/DER&lt;br /&gt;
|-&lt;br /&gt;
| Закрытые ключи&lt;br /&gt;
| PKCS#8 (незашифрованный), PKCS#1 (RSA, незашифрованный)&lt;br /&gt;
| Любой зашифрованный ключ (без пароля пользовательского интерфейса)&lt;br /&gt;
|-&lt;br /&gt;
| Алгоритмы ключей&lt;br /&gt;
| RSA-2048; ECDSA P-256, P-384, P-521&lt;br /&gt;
| Ed25519 (EdDSA)&lt;br /&gt;
|-&lt;br /&gt;
| Цепочки&lt;br /&gt;
| Лист + промежуточные узлы в одном файле; опустить корневой узел; до 8 промежуточных узлов&lt;br /&gt;
| Лист помечен CA:TRUE&lt;br /&gt;
|-&lt;br /&gt;
| TLS&lt;br /&gt;
| TLS 1.2&lt;br /&gt;
| TLS 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Проверки идентификации (на стороне клиента)&lt;br /&gt;
| SNI + SAN/CN + время действия при включенной расширенной безопасности&lt;br /&gt;
| Проверки KU/EKU для клиентских сертификатов (по умолчанию не применяются)&lt;br /&gt;
|-&lt;br /&gt;
| Веб-интерфейс&lt;br /&gt;
| Поддержка HTTPS с версии 1.8.0+ (Gen3+); Пользовательские HTTPS-сертификаты (самоподписанные или частные PKI); Клиенты должны доверять выдающему центру сертификации (установить частный центр сертификации или доверять сертификату устройства).&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Поддерживаемые форматы файлов и контейнеров ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PEM&amp;#039;&amp;#039;&amp;#039; (.pem, .crt, .cer) - &amp;#039;&amp;#039;&amp;#039;Поддерживается&amp;#039;&amp;#039;&amp;#039; и рекомендуется.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;DER&amp;#039;&amp;#039;&amp;#039; (.der) - &amp;#039;&amp;#039;&amp;#039;Поддерживается&amp;#039;&amp;#039;&amp;#039; (двоичное кодирование тех же данных).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PKCS#12/PFX&amp;#039;&amp;#039;&amp;#039; (.p12, .pfx) - Пользовательский интерфейс устройства &amp;#039;&amp;#039;&amp;#039;не импортирует PFX&amp;#039;&amp;#039;&amp;#039;. Типичные загрузки PFX &amp;#039;&amp;#039;&amp;#039;не удается&amp;#039;&amp;#039;&amp;#039;. Даже незашифрованный .p12 не импортируется. Рекомендация: извлеките ключ и сертификаты в незашифрованный PEM-файл и загрузите их.&lt;br /&gt;
&lt;br /&gt;
== Форматы закрытых ключей ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PKCS#8 (незашифрованный)&amp;#039;&amp;#039;&amp;#039; - &amp;#039;&amp;#039;&amp;#039;Поддерживается&amp;#039;&amp;#039;&amp;#039; и является предпочтительным.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PKCS#1 (RSA, незашифрованный)&amp;#039;&amp;#039;&amp;#039; - &amp;#039;&amp;#039;&amp;#039;Поддерживается&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Зашифрованные ключи&amp;#039;&amp;#039;&amp;#039; - &amp;#039;&amp;#039;&amp;#039;Не поддерживаются&amp;#039;&amp;#039;&amp;#039; (в пользовательском интерфейсе не запрашивается пароль).&lt;br /&gt;
&lt;br /&gt;
=== Быстрые идентификаторы в формате PEM: ===&lt;br /&gt;
&lt;br /&gt;
* Незашифрованный PKCS#8 -&amp;gt; -----BEGIN PRIVATE KEY-----&lt;br /&gt;
* Незашифрованный PKCS#1 (RSA) -&amp;gt; -----BEGIN RSA PRIVATE KEY-----&lt;br /&gt;
* Зашифрованный ключ (не поддерживается) -&amp;gt; -----BEGIN ENCRYPTED PRIVATE KEY-----&lt;br /&gt;
&lt;br /&gt;
== Поддерживаемые алгоритмы ключей ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;RSA-2048&amp;#039;&amp;#039;&amp;#039; - &amp;#039;&amp;#039;&amp;#039;Поддерживается&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ECDSA&amp;#039;&amp;#039;&amp;#039; - &amp;#039;&amp;#039;&amp;#039;secp256r1 (P-256)&amp;#039;&amp;#039;&amp;#039; , &amp;#039;&amp;#039;&amp;#039;secp384r1 (P-384)&amp;#039;&amp;#039;&amp;#039; , &amp;#039;&amp;#039;&amp;#039;secp521r1 (P-521)&amp;#039;&amp;#039;&amp;#039; - &amp;#039;&amp;#039;&amp;#039;Поддерживается&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ed25519 (EdDSA)&amp;#039;&amp;#039;&amp;#039; - &amp;#039;&amp;#039;&amp;#039;Не поддерживается&amp;#039;&amp;#039;&amp;#039; (Curve25519/X25519 может присутствовать для ECDH, но не для подписей).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Совет:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Для новых развертываний &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ECDSA P-256&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
предлагает меньшие ключи и более быстрое рукопожатие на устройствах с ограниченными ресурсами.&lt;br /&gt;
&lt;br /&gt;
== Цепочки сертификатов и доверие ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Представленная цепочка (идентификатор, который вы загружаете на устройство):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Загрузите &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;один PEM-файл&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
который содержит &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;конечный сертификат первым&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
, за которым следуют любые &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;необходимые промежуточные сертификаты CA&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
(объединенный PEM).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Не включайте корневой центр сертификации.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;#039;&amp;#039;Применяется к:&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;идентификатору клиента&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
для mTLS (сертификат клиента MQTT) и &amp;#039;&amp;#039;&amp;#039;Серверу веб-интерфейса HTTPS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
сертификату.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Кто должен доверять чему (хранилища доверенных сертификатов)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Когда Shelly является TLS-клиентом&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
(например, подключается к вашему MQTT-брокеру)&lt;br /&gt;
Загрузите ваш &amp;#039;&amp;#039;&amp;#039;корневой центр сертификации&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(и любые промежуточные сертификаты, которым Shelly должен доверять) в &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Настройки -&amp;gt; Конфигурация TLS -&amp;gt; Пользовательский пакет PEM центра сертификации (CA)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
. Это хранилище доверенных сертификатов устройства,&lt;br /&gt;
&lt;br /&gt;
используемое для проверки серверов.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;(Здесь нет закрытых ключей.)&amp;#039;&amp;#039;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Когда Shelly является TLS-сервером&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
(Веб-интерфейс по HTTPS, Gen3+, v1.8.0+)&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;браузер/ОС&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
(клиент) должен доверять центру сертификации, выдавшему сертификат веб-интерфейса устройства.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Максимальная глубина цепочки:&amp;#039;&amp;#039;&amp;#039; До &amp;#039;&amp;#039;&amp;#039;8 промежуточных узлов&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Основные ограничения (лист):&amp;#039;&amp;#039;&amp;#039; Лист не должен быть центром сертификации&amp;#039;&amp;#039;&amp;#039; . Лист с &amp;#039;&amp;#039;&amp;#039;CA:TRUE&amp;#039;&amp;#039;&amp;#039; отклоняется. Лист с &amp;#039;&amp;#039;&amp;#039;CA:FALSE&amp;#039;&amp;#039;&amp;#039; или без расширения BasicConstraints принимается.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Пользовательские HTTPS-сертификаты (веб-интерфейс, Gen3+, v1.8.0+):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Вы можете установить пользовательский HTTPS-сертификат сервера (самоподписанный или частный PKI). Убедитесь, что клиентские устройства&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;доверяют выдающему центру сертификации&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
, иначе браузер выдаст предупреждение. Если вы обращаетесь по&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;DNS-имени&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
, укажите это полное доменное имя (FQDN) в&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SAN&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
. Если вы обращаетесь по IP-адресу, укажите IP-адрес в&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SAN&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
в качестве записи IP-адреса.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Публичный центр сертификации:&amp;#039;&amp;#039;&amp;#039; обычно уже является доверенным.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Частный PKI:&amp;#039;&amp;#039;&amp;#039; установите &amp;#039;&amp;#039;&amp;#039;ваш частный корневой/промежуточный центр сертификации&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;только&amp;#039;&amp;#039;&amp;#039; в хранилище доверенных сертификатов клиента(ов) или приложения, которые будут обращаться к веб-интерфейсу. &amp;#039;&amp;#039;&amp;#039;Не&amp;#039;&amp;#039;&amp;#039; включать корневой сертификат в цепочку, предоставляемую устройством.&lt;br /&gt;
&lt;br /&gt;
== Версия TLS и поведение проверки ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Версии TLS:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Поддерживается TLS 1.2&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;TLS 1.3&amp;#039;&amp;#039;&amp;#039; отсутствует в текущих сборках.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Проверка подлинности сервера и времени:&amp;#039;&amp;#039;&amp;#039; Отправляет &amp;#039;&amp;#039;&amp;#039;SNI&amp;#039;&amp;#039;&amp;#039; (Server Name Indication) для конечных точек на основе имени хоста. Проверяет &amp;#039;&amp;#039;&amp;#039;имя хоста&amp;#039;&amp;#039;&amp;#039; по сертификату &amp;#039;&amp;#039;&amp;#039;SAN/CN&amp;#039;&amp;#039;&amp;#039;. Проверяет &amp;#039;&amp;#039;&amp;#039;срок действия сертификата&amp;#039;&amp;#039;&amp;#039; (дата/время).&lt;br /&gt;
&lt;br /&gt;
== Где используются сертификаты в Shelly ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;MQTT через TLS (аутентификация сервера)&amp;#039;&amp;#039;&amp;#039; - Загружает &amp;#039;&amp;#039;&amp;#039;сертификат CA&amp;#039;&amp;#039;&amp;#039;, чтобы Shelly мог проверить сертификат брокера.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;MQTT с клиентскими сертификатами (mTLS)&amp;#039;&amp;#039;&amp;#039; - Дополнительно загрузите &amp;#039;&amp;#039;&amp;#039;клиентский сертификат&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;соответствующий незашифрованный закрытый ключ&amp;#039;&amp;#039;&amp;#039;; включите опцию клиентского сертификата в настройках MQTT.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Локальный веб-интерфейс по HTTPS (начиная с версии 1.8.0)&amp;#039;&amp;#039;&amp;#039; - Веб-интерфейс устройства поддерживает &amp;#039;&amp;#039;&amp;#039;HTTPS&amp;#039;&amp;#039;&amp;#039;. Если вы будете получать доступ по &amp;#039;&amp;#039;&amp;#039;DNS-имени&amp;#039;&amp;#039;&amp;#039; (например, shelly-dev.example.lan), включите это &amp;#039;&amp;#039;&amp;#039;FQDN в SAN&amp;#039;&amp;#039;&amp;#039; сертификата веб-интерфейса, которому вы планируете доверять/использовать. Если вы получаете доступ по &amp;#039;&amp;#039;&amp;#039;IP-адресу&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;IP&amp;#039;&amp;#039;&amp;#039; должен присутствовать в &amp;#039;&amp;#039;&amp;#039;SAN&amp;#039;&amp;#039;&amp;#039; в качестве записи IP (одних только DNS-имен недостаточно для браузеров при доступе по IP). В управляемых средах рассмотрите возможность использования внутреннего центра сертификации (ЦС), которому доверяют ваши конечные устройства, или выдайте сертификат через ACME DNS-01 для частного имени. Пользовательский HTTPS-сертификат (самоподписанный или с использованием частной PKI): Загрузите сертификат сервера и соответствующий незашифрованный закрытый ключ для веб-интерфейса (метки могут различаться в зависимости от модели; см. «Настройки -&amp;gt; Конфигурация TLS»). Убедитесь, что клиентские устройства доверяют выдающему ЦС или сертификату устройства.&lt;br /&gt;
&lt;br /&gt;
== Подготовка файлов (шпаргалка по OpenSSL) ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Сгенерировать ключ ECDSA P-256 и CSR (рекомендуется)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
BASH&lt;br /&gt;
&lt;br /&gt;
# Закрытый ключ (PKCS#8, незашифрованный)&lt;br /&gt;
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out device.key&lt;br /&gt;
&lt;br /&gt;
# CSR (скорректировать тему)&lt;br /&gt;
openssl req -new -key device.key -out device.csr -subj &amp;quot;/CN=device.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Сгенерировать ключ RSA-2048 и CSR&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
BASH&lt;br /&gt;
&lt;br /&gt;
openssl genrsa -out device.key 2048&lt;br /&gt;
openssl req -new -key device.key -out device.csr -subj &amp;quot;/CN=device.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Объединить листовой ключ + промежуточные соединения (PEM)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
BASH&lt;br /&gt;
&lt;br /&gt;
# Сначала лист, затем промежуточные соединения; НЕ включайте root&lt;br /&gt;
cat device.crt intermediate1.crt intermediate2.crt &amp;gt; device-chain.pem&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Удалите парольную фразу (если ваш ключ зашифрован)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
BASH&lt;br /&gt;
&lt;br /&gt;
# Выводит незашифрованный PKCS#8&lt;br /&gt;
openssl pkey -in encrypted.key -out key-unencrypted.pem&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Преобразовать DER &amp;lt;-&amp;gt; PEM&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
BASH&lt;br /&gt;
&lt;br /&gt;
# PEM -&amp;gt; DER&lt;br /&gt;
openssl x509 -in device.crt -outform der -out device.der&lt;br /&gt;
&lt;br /&gt;
# DER -&amp;gt; PEM&lt;br /&gt;
openssl x509 -in device.der -inform der -out device.crt&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Извлечь PEM из PFX (избегайте загрузки .p12/.pfx)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
BASH&lt;br /&gt;
&lt;br /&gt;
# Незашифрованный закрытый ключ&lt;br /&gt;
openssl pkcs12 -in bundle.p12 -nocerts -nodes -out key-unencrypted.pem&lt;br /&gt;
&lt;br /&gt;
# Лист + цепочка&lt;br /&gt;
openssl pkcs12 -in bundle.p12 -clcerts -nokeys -out device.crt&lt;br /&gt;
openssl pkcs12 -in bundle.p12 -nodes -nokeys -cacerts -out intermediates.pem&lt;br /&gt;
&lt;br /&gt;
# Загружаемая цепочка&lt;br /&gt;
cat device.crt intermediates.pem &amp;gt; device-chain.pem&lt;br /&gt;
&lt;br /&gt;
== Загрузка сертификатов (веб-интерфейс) ==&lt;br /&gt;
&lt;br /&gt;
# Откройте &amp;#039;&amp;#039;&amp;#039;Веб-интерфейс&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;Настройки -&amp;gt; Конфигурация TLS&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
# Загрузите необходимые файлы: * &amp;#039;&amp;#039;&amp;#039;Сертификат центра сертификации&amp;#039;&amp;#039;&amp;#039; (ca.crt) для проверки сервером.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Сертификат клиента&amp;#039;&amp;#039;&amp;#039; (только при использовании mTLS).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Закрытый ключ клиента&amp;#039;&amp;#039;&amp;#039; (незашифрованный; соответствует сертификату клиента).&lt;br /&gt;
&lt;br /&gt;
* (Gen3+, v1.8.0+) &amp;#039;&amp;#039;&amp;#039;Сертификат веб-сервера&amp;#039;&amp;#039;&amp;#039; (необязательно): загрузите сертификат HTTPS-сервера и соответствующий ему &amp;#039;&amp;#039;&amp;#039;незашифрованный&amp;#039;&amp;#039;&amp;#039; закрытый ключ, если вам нужен пользовательский сертификат пользовательского интерфейса (самоподписанный или с закрытой инфраструктурой PKI).&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Сохраняйте&amp;#039;&amp;#039;&amp;#039; каждую загрузку.&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Перезагрузите&amp;#039;&amp;#039;&amp;#039; при появлении запроса, чтобы изменения вступили в силу.&lt;br /&gt;
&lt;br /&gt;
После загрузки настройте конкретную службу (например, &amp;#039;&amp;#039;&amp;#039;Настройки -&amp;gt; MQTT&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
) для использования &amp;#039;&amp;#039;&amp;#039;TLS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
и, при необходимости, &amp;#039;&amp;#039;&amp;#039;клиентского сертификата&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
== Примечания по настройке и рекомендации ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SAN имеет значение.&amp;#039;&amp;#039;&amp;#039; Убедитесь, что точное &amp;#039;&amp;#039;&amp;#039;имя хоста или IP-адрес&amp;#039;&amp;#039;&amp;#039;, к которому вы подключаетесь, присутствует в &amp;#039;&amp;#039;&amp;#039;SAN&amp;#039;&amp;#039;&amp;#039; сертификате сервера; Одного CN недостаточно для современных клиентов.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Создавайте компактные PEM-файлы.&amp;#039;&amp;#039;&amp;#039; Включайте только необходимые конечные узлы и промежуточные узлы. Большие пакеты могут превышать ограничения встроенной памяти.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Избегайте зашифрованных ключей.&amp;#039;&amp;#039;&amp;#039; Нет пути в пользовательском интерфейсе для паролей;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Не помечайте конечный узел как CA.&amp;#039;&amp;#039;&amp;#039; Повторите операцию, если BasicConstraints показывает CA:TRUE.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNI требует имени хоста.&amp;#039;&amp;#039;&amp;#039; По возможности используйте DNS-имя вместо необработанного IP-адреса для лучшей совместимости.&lt;br /&gt;
&lt;br /&gt;
== Устранение неполадок (быстрые решения) ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;«Не удалось разобрать ключ/сертификат.»&amp;#039;&amp;#039;&amp;#039; Вероятно, это зашифрованный ключ или PFX. Преобразуйте в незашифрованный PEM и повторите попытку.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Несоответствие имени хоста&amp;#039;&amp;#039;&amp;#039; Добавьте точное &amp;#039;&amp;#039;&amp;#039;FQDN/IP&amp;#039;&amp;#039;&amp;#039;, которое вы используете, в сертификат &amp;#039;&amp;#039;&amp;#039;SAN&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Неполная цепочка&amp;#039;&amp;#039;&amp;#039; Объедините &amp;#039;&amp;#039;&amp;#039;листовой узел + все промежуточные&amp;#039;&amp;#039;&amp;#039; в один PEM; опустите корневой узел.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ошибки времени рукопожатия&amp;#039;&amp;#039;&amp;#039; Убедитесь, что часы устройства установлены правильно (включите &amp;#039;&amp;#039;&amp;#039;NTP&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ограничения памяти&amp;#039;&amp;#039;&amp;#039; Если загрузка периодически завершается с ошибкой, удалите комментарии/лишние сертификаты и сократите количество PEM-файлов.&lt;br /&gt;
&lt;br /&gt;
== Контрольный список перед загрузкой ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Закрытый ключ&amp;#039;&amp;#039;&amp;#039; не зашифрован (PKCS#8 или PKCS#1) в &amp;#039;&amp;#039;&amp;#039;PEM&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
* Файл сертификата содержит &amp;quot;листовой + промежуточный&amp;quot; (объединенные), &amp;quot;корневой&amp;quot; отсутствует.&lt;br /&gt;
&lt;br /&gt;
* Тип ключа - RSA-2048 или ECDSA P-256/P-384/P-521 (не Ed25519).&lt;br /&gt;
&lt;br /&gt;
* Листовой ключ не является центром сертификации (CA:FALSE или без BasicConstraints).&lt;br /&gt;
&lt;br /&gt;
* SAN указывает на точное полное доменное имя/IP-адрес, который вы будете использовать.&lt;br /&gt;
&lt;br /&gt;
* Расширенная безопасность включена для исходящей проверки TLS.&lt;br /&gt;
&lt;br /&gt;
* В версии 1.8.0 и выше рекомендуется использовать веб-интерфейс по протоколу HTTPS.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Общий]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown user</name></author>
	</entry>
</feed>