Changes between Version 1 and Version 2 of Examples3uHttps


Ignore:
Timestamp:
Aug 25, 2026, 5:31:00 PM (6 days ago)
Author:
roman_zhur
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Examples3uHttps

    v1 v2  
    11[[wiki:Examples3u|Примеры настройки аппаратуры MC04-DSL-3U]]
     2
    23[[PageOutline(1-10, Содержание:)]]
     4
    35== 1. Короткая инструкция ==
    4 
    5 
    6 
    7 Сертификат и ключ загружаются в веб-интерфейсе блока MC04-DSL-3U на вкладке '''Разное''' в пункте '''Сертификат'''. Сертификат должен быть выпущен с конкретным IP-адресом платы SW-01.
    8 Для получения сертификата и ключа обратитесь к администратору Вашей сети.
     6Сертификат и ключ загружаются в веб-интерфейсе блока MC04-DSL-3U на вкладке '''Разное''' в пункте '''Сертификат'''. Сертификат должен быть выпущен с конкретным IP-адресом платы SW-01. \\
     7Для получения сертификата и ключа обратитесь к администратору Вашей сети. \\
    98Если вы хотите самостоятельно выпустить сертификат, то ниже представлена полная инструкция.
    109
     
    2827 * алгоритм закрытого ключа - ECDSA;
    2928 * эллиптическая кривая - P-256 ({{{prime256v1}}}, также называется {{{secp256r1}}});
    30  * формат закрытого ключа платы - незашифрованный PKCS#8 в формате PEM;
     29 * формат закрытого ключа платы - незашифрованный PKCS!#8 в формате PEM;
    3130 * алгоритм подписи сертификата - ECDSA с SHA-256;
    3231 * формат сертификата - X.509 v3 в формате PEM;
     
    3433
    3534{{{#!div class="wiki admonition note"
    36 '''Примечание.'''
     35'''Примечание.''' \\
    3736Алгоритм сертификата и алгоритм шифрования TLS-трафика - разные параметры. ECDSA используется для подтверждения подлинности платы и цифровой подписи. После установления соединения прикладные данные шифруются согласованным набором TLS, например AES-GCM или ChaCha20-Poly1305.
    3837}}}
     
    5251
    5352{{{#!div class="wiki admonition warning"
    54 '''Внимание.'''
     53'''Внимание.''' \\
    5554До загрузки сертификата убедитесь, что у вас сохраняется альтернативный доступ к плате по HTTP или SSH. Ошибка в сертификате или закрытом ключе может привести к невозможности открыть веб-интерфейс по HTTPS.
    5655}}}
     
    5857
    5958{{{#!div class="wiki admonition warning"
    60 '''Внимание.'''
    61 Плата SW-01 не поддерживает зашифрованные закрытые ключи. Попытка загрузить ключ с заголовком {{{-----BEGIN ENCRYPTED PRIVATE KEY-----}}} приводит к перезагрузке платы. Используйте только незашифрованный ключ PKCS#8 в формате PEM с заголовком {{{-----BEGIN PRIVATE KEY-----}}}.
     59'''Внимание.''' \\
     60Плата SW-01 не поддерживает зашифрованные закрытые ключи. Попытка загрузить ключ с заголовком {{{-----BEGIN ENCRYPTED PRIVATE KEY-----}}} приводит к перезагрузке платы. Используйте только незашифрованный ключ PKCS!#8 в формате PEM с заголовком {{{-----BEGIN PRIVATE KEY-----}}}.
    6261}}}
    6362
     
    7170После установки откройте командную строку Windows. Для этого нажмите {{{Win-R}}}, введите {{{cmd}}} и нажмите Enter.
    7271
    73 Проверьте доступность OpenSSL командой:
     72Проверьте доступность OpenSSL командой: \\
    7473{{{openssl version}}}
    7574
    7675Команда {{{openssl}}} запускает программу OpenSSL, а подкоманда {{{version}}} выводит её версию. Приведённые далее команды рассчитаны на OpenSSL 3.5 и совместимы с OpenSSL 4.x.
    7776
    78 Если Windows выводит сообщение, что команда {{{openssl}}} не найдена, временно добавьте каталог программы в переменную {{{PATH}}} текущего окна CMD:
     77Если Windows выводит сообщение, что команда {{{openssl}}} не найдена, временно добавьте каталог программы в переменную {{{PATH}}} текущего окна CMD: \\
    7978{{{set "PATH=C:\Program Files\OpenSSL-Win64\bin;%PATH%"}}}
    8079
     
    8786Изменение действует только до закрытия текущего окна CMD. Если OpenSSL установлен в другом каталоге, укажите фактический путь к папке {{{bin}}}.
    8887
    89 Повторно выполните:
     88Повторно выполните: \\
    9089{{{openssl version}}}
    9190
    9291[[Image(настройка HTTPS ред-01.png, align=center)]]
     92
    9393== 5. Создание рабочего каталога ==
    9494
    95 Создайте отдельный каталог для файлов УЦ (Удостоверяющий центр) и платы:
     95Создайте отдельный каталог для файлов УЦ (Удостоверяющий центр) и платы: \\
    9696{{{mkdir "%USERPROFILE%\equipment-certificates"}}}
    9797
     
    101101 * {{{equipment-certificates}}} - название рабочего каталога.
    102102
    103 Перейдите в созданный каталог:
     103Перейдите в созданный каталог: \\
    104104{{{cd /d "%USERPROFILE%\equipment-certificates"}}}
    105105
    106106Все последующие команды выполняйте в этом каталоге.
     107
    107108[[Image(настройка HTTPS ред-02.png, align=center)]]
     109
    108110== 6. Создание локального центра сертификации ==
    109111
     
    113115
    114116{{{#!div class="wiki admonition warning"
    115 '''Внимание.'''
    116 Файлы {{{mc04-ca.key}}} и {{{sw01.key}}} являются закрытыми ключами.
     117'''Внимание.''' \\
     118Файлы {{{mc04-ca.key}}} и {{{sw01.key}}} являются закрытыми ключами. \\
    117119Любой человек, получивший закрытый ключ платы, сможет выдавать себя за эту плату. Компрометация ключа локального УЦ позволит выпускать сертификаты, которым будут доверять компьютеры с установленным корневым сертификатом этого УЦ.
    118120}}}
     
    127129Ключ УЦ защищается паролем, потому что он используется вручную при выпуске сертификатов. Ключ SW-01, напротив, должен загружаться сервером автоматически после включения платы, поэтому его нельзя защитить паролем.
    128130
    129 Проверьте первую строку ключа УЦ:
     131Проверьте первую строку ключа УЦ: \\
    130132{{{findstr /B /L /C:"-----BEGIN" mc04-ca.key}}}
    131133
     
    139141=== 6.2. Создание корневого сертификата УЦ ===
    140142
    141 Введите команду:
     143Введите команду: \\
    142144{{{openssl req -new -x509 -key mc04-ca.key -out mc04-ca.crt -days 3650 -sha256 -subj "/CN=MC04-DSL-3U Local CA" -addext "basicConstraints=critical,CA:TRUE,pathlen:0" -addext "keyUsage=critical,keyCertSign,cRLSign" -addext "subjectKeyIdentifier=hash"}}}
    143145
     
    161163Срок действия УЦ выбран больше срока действия сертификата платы, потому что сертификат платы должен оставаться проверяемым в течение всего своего срока. Истечение корневого сертификата потребует заменить корневой сертификат в Windows и перевыпустить сертификаты оборудования.
    162164
    163 Проверьте созданный сертификат:
     165Проверьте созданный сертификат: \\
    164166{{{openssl x509 -in mc04-ca.crt -noout -subject -issuer -dates -text}}}
    165167
    166168У самоподписанного корневого сертификата значения {{{subject}}} и {{{issuer}}} должны совпадать.
     169
    167170[[Image(настройка HTTPS ред-04.png, align=center)]]
     171
    168172== 7. Создание закрытого ключа SW-01 ==
    169173
    170 Создайте ключ платы:
     174Создайте ключ платы: \\
    171175{{{openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -out sw01.key}}}
    172176
    173 Команда создаёт закрытый ключ ECDSA P‑256 в незашифрованном формате PKCS#8 и сохраняет его в файл {{{sw01.key}}}.
    174 
    175 Проверьте заголовок ключа:
     177Команда создаёт закрытый ключ ECDSA P‑256 в незашифрованном формате PKCS!#8 и сохраняет его в файл {{{sw01.key}}}.
     178
     179Проверьте заголовок ключа: \\
    176180{{{findstr /B /L /C:"-----BEGIN" sw01.key}}}
    177181
     
    181185}}}
    182186
    183 Дополнительно проверьте структуру ключа:
     187Дополнительно проверьте структуру ключа: \\
    184188{{{openssl pkey -in sw01.key -check -noout}}}
    185189
     
    190194
    191195Если OpenSSL запрашивает пароль, был создан зашифрованный ключ. Такой файл загружать в SW-01 нельзя.
     196
    192197[[Image(настройка HTTPS ред-05.png, align=center)]]
     198
    193199== 8. Создание запроса на сертификат SW-01 ==
    194200
     
    198204
    199205Параметры команды:
    200  * {{{req -new}}} - создаёт новый запрос на сертификат PKCS#10;
     206 * {{{req -new}}} - создаёт новый запрос на сертификат PKCS!#10;
    201207 * {{{-key sw01.key}}} - подписывает запрос закрытым ключом платы и помещает в запрос соответствующий открытый ключ;
    202208 * {{{-out sw01.csr}}} - сохраняет запрос в файл {{{sw01.csr}}};
     
    210216Именно {{{subjectAltName}}}, а не {{{CN}}}, используется браузером для проверки IP-адреса. Значение должно быть записано с типом {{{IP}}}.
    211217
    212 Проверьте запрос:
     218Проверьте запрос: \\
    213219{{{openssl req -in sw01.csr -noout -verify -text}}}
    214220
    215221В выводе должны присутствовать IP-адрес платы и расширение {{{TLS Web Server Authentication}}} либо {{{serverAuth}}}.
     222
    216223[[Image(настройка HTTPS ред-06.png, align=center)]]
     224
    217225== 9. Выпуск сертификата SW-01 ==
    218226
    219 Подпишите запрос локальным УЦ:
     227Подпишите запрос локальным УЦ: \\
    220228{{{openssl x509 -req -in sw01.csr -CA mc04-ca.crt -CAkey mc04-ca.key -CAcreateserial -out sw01.crt -days 365 -sha256 -copy_extensions copy}}}
    221229
     
    236244
    237245После выполнения команды в каталоге также появится файл серийного номера УЦ. Его следует хранить вместе с файлами УЦ, чтобы серийные номера последующих сертификатов не повторялись.
     246
    238247[[Image(настройка HTTPS ред-07.png, align=center)]]
     248
    239249== 10. Проверка сертификата и ключа ==
    240250
     
    307317
    308318Если ключ соответствует сертификату, CMD сообщит, что различия не найдены.
     319
    309320[[Image(настройка HTTPS ред-08.png, align=center)]]
     321
    310322== 11. Загрузка сертификата в SW-01 ==
    311323
    312324Сертификат и ключ загружаются в веб-интерфейсе блока MC04-DSL-3U на вкладке '''Разное''' в пункте '''Сертификат'''.
     325
    313326[[Image(настройка HTTPS ред-09.png, align=center)]]
    314327
    315328Откроется новое окно '''Информация о сертификате SSL''', в котором нужно нажать '''Загрузить новый сертификат'''.
     329
    316330[[Image(настройка HTTPS ред-010.png, align=center)]]
    317331
    318332Появится окно '''Загрузка сертификатов SSL'''.
     333
    319334[[Image(настройка HTTPS ред-011.png, align=center)]]
    320335
     
    346361
    347362{{{#!div class="wiki admonition warning"
    348 '''Внимание.'''
     363'''Внимание.''' \\
    349364После нажатия '''ОК''' сертификат и ключ немедленно загружаются в плату. Не нажимайте '''ОК''', пока не выполнены все проверки предыдущего раздела.
    350365}}}
     
    356371
    357372Также нажмите '''ОК'''.
     373
    358374[[Image(настройка HTTPS ред-012.png, align=center)]]
    359375
    360 После применения настроек откройте:
     376После применения настроек откройте: \\
    361377{{{https://192.168.20.39}}}
    362378
     
    367383Корневой сертификат можно добавить либо в доверенное хранилище Windows, либо в локальное хранилище отдельного браузера. В первом случае сертификату будут доверять приложения и браузеры, использующие системное хранилище Windows. Во втором случае доверие будет действовать только в том браузере и профиле, в которые импортирован сертификат, не затрагивая Windows, другие браузеры и приложения. Например, Mozilla Firefox позволяет импортировать корневой сертификат в собственное хранилище выбранного профиля.
    368384
    369 Перед установкой выведите SHA-256-отпечаток корневого сертификата:
     385Перед установкой выведите SHA-256-отпечаток корневого сертификата: \\
    370386{{{openssl x509 -in mc04-ca.crt -noout -fingerprint -sha256}}}
    371387
     
    378394=== 12.1. Установка корневого сертификата в хранилище Windows через CMD ===
    379395
    380 Установите корневой сертификат в хранилище текущего пользователя:
     396Установите корневой сертификат в хранилище текущего пользователя: \\
    381397{{{certutil -user -addstore Root mc04-ca.crt}}}
    382398
     
    389405
    390406{{{#!div class="wiki admonition warning"
    391 '''Внимание.'''
     407'''Внимание.''' \\
    392408Установка корневого сертификата локального УЦ в доверенное хранилище Windows означает, что операционная система и использующие это хранилище приложения будут доверять всем сертификатам, подписанным данным УЦ. Если закрытый ключ УЦ будет скомпрометирован, злоумышленник сможет выпускать сертификаты, которым этот компьютер будет доверять.
    393409
     
    427443
    428444{{{#!div class="wiki admonition warning"
    429 '''Внимание.'''
     445'''Внимание.''' \\
    430446Устанавливайте корневой сертификат {{{mc04-ca.crt}}}, а не сертификат платы {{{sw01.crt}}}. Не импортируйте в браузер или хранилище Windows закрытые ключи {{{mc04-ca.key}}} и {{{sw01.key}}}.
    431447}}}
     
    471487Строка {{{Ciphersuite}}} показывает согласованный набор шифров. Строка {{{Signature type}}} показывает алгоритм подписи сертификата, а {{{Peer Temp Key}}} - алгоритм временного обмена ключами.
    472488
    473 Также можно проверить работу TLS 1.2 командой:
     489Также можно проверить работу TLS 1.2 командой: \\
    474490{{{echo. | openssl s_client -connect 192.168.20.39:443 -tls1_2 -brief}}}
    475491
     
    520536
    521537{{{#!div class="wiki admonition warning"
    522 '''Внимание.'''
     538'''Внимание.''' \\
    523539Во время перезагрузки соединения с платой, включая SSH и веб-интерфейс, будут разорваны. Перед выполнением {{{reboot}}} убедитесь, что временное прекращение управления оборудованием допустимо.
    524540}}}
     
    535551== 16. Возможные ошибки ==
    536552
    537 '''OpenSSL не найден'''
     553'''OpenSSL не найден''' \\
    538554Если CMD выводит сообщение {{{openssl is not recognized}}}, проверьте каталог установки и добавьте его папку {{{bin}}} в {{{PATH}}} текущего окна CMD.
    539555
    540 '''Ключ начинается с ENCRYPTED PRIVATE KEY'''
     556'''Ключ начинается с ENCRYPTED PRIVATE KEY''' \\
    541557Такой ключ защищён паролем и не поддерживается SW-01. Не загружайте его. Создайте новый незашифрованный ключ командой из раздела '''Создание закрытого ключа SW-01'''.
    542558
    543559{{{#!div class="wiki admonition danger"
    544 '''Опасность.'''
     560'''Опасность.''' \\
    545561Практически установлено, что попытка загрузки зашифрованного закрытого ключа приводит к перезагрузке SW-01.
    546562}}}
    547563
    548564
    549 '''Сертификат и ключ не соответствуют друг другу'''
     565'''Сертификат и ключ не соответствуют друг другу''' \\
    550566Повторите извлечение открытых ключей и сравнение через {{{fc /b}}}. Загружайте только ту пару, для которой различия не обнаружены.
    551567
    552 '''Браузер сообщает о несоответствии адреса'''
     568'''Браузер сообщает о несоответствии адреса''' \\
    553569Проверьте IP-адрес в {{{subjectAltName}}} командой {{{openssl x509 -checkip}}}. Подключайтесь к тому же IP-адресу, который указан в сертификате.
    554570
    555 '''Браузер не доверяет сертификату'''
     571'''Браузер не доверяет сертификату''' \\
    556572Убедитесь, что в хранилище текущего пользователя установлен именно {{{mc04-ca.crt}}}, а не сертификат платы. Проверьте SHA-256-отпечаток УЦ. Перезапустите браузер.
    557573
    558 '''HTTPS не открывается после загрузки'''
     574'''HTTPS не открывается после загрузки''' \\
    559575Проверьте:
    560576 * доступность платы по HTTP или SSH;
     
    569585== 17. Результат настройки ==
    570586
    571 После выполнения инструкции плата SW-01 доступна по HTTPS по своему IP-адресу. Для подтверждения подлинности используется сертификат ECDSA P-256, подписанный локальным УЦ, а закрытый ключ платы хранится в незашифрованном формате PKCS#8 PEM, который практически проверен на совместимость с SW-01.
     587После выполнения инструкции плата SW-01 доступна по HTTPS по своему IP-адресу. Для подтверждения подлинности используется сертификат ECDSA P-256, подписанный локальным УЦ, а закрытый ключ платы хранится в незашифрованном формате PKCS!#8 PEM, который практически проверен на совместимость с SW-01.
    572588
    573589Установка корневого сертификата локального УЦ позволяет Windows и браузеру проверить сертификат платы без предупреждения о неизвестном издателе. Закрытый ключ УЦ при этом остаётся только у администратора и не передаётся в блок. Работа HTTPS проверяется для TLS 1.2 и TLS 1.3 с помощью OpenSSL и браузера.
    574 
    575590----
    576591[[wiki:Examples3u|Примеры настройки аппаратуры MC04-DSL-3U]]