Changes between Version 4 and Version 5 of Examples3uHttps
- Timestamp:
- Aug 26, 2026, 10:10:12 AM (5 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Examples3uHttps
v4 v5 15 15 HTTPS (Hypertext Transfer Protocol Secure) - защищённый вариант протокола HTTP. При работе по HTTPS данные между браузером и блоком MC04-DSL-3U передаются внутри TLS-соединения. TLS шифрует трафик, контролирует его целостность и позволяет браузеру проверить сертификат блока. 16 16 17 В этой инструкции рассмотрена настройка HTTPS на плате SW-01 в составе блока MC04-DSL-3U. Сертификат выпускается только на IP-адрес платы SW-01.17 В этой инструкции рассмотрена настройка HTTPS на плате SW-01 в составе блока MC04-DSL-3U. 18 18 19 19 В инструкции описаны: … … 35 35 * версия защищённого протокола - TLS 1.2 или TLS 1.3. 36 36 37 {{{#!div class="wiki admonition note"37 {{{#!div style="background-color: #fff8dc; border: 1px solid #e0c66c; border-left: 5px solid #d39e00; padding: 8px 12px; margin: 10px 0" 38 38 '''Примечание.''' \\ 39 39 Алгоритм сертификата и алгоритм шифрования TLS-трафика - разные параметры. ECDSA используется для подтверждения подлинности платы и цифровой подписи. После установления соединения прикладные данные шифруются согласованным набором TLS, например AES-GCM или ChaCha20-Poly1305. … … 53 53 В командах этой инструкции используется IP-адрес {{{192.168.20.39}}}. Замените его на фактический IP-адрес вашей платы SW-01. 54 54 55 {{{#!div class="wiki admonition warning"55 {{{#!div style="background-color: #fff8dc; border: 1px solid #e0c66c; border-left: 5px solid #d39e00; padding: 8px 12px; margin: 10px 0" 56 56 '''Внимание.''' \\ 57 57 До загрузки сертификата убедитесь, что у вас сохраняется альтернативный доступ к плате по HTTP или SSH. Ошибка в сертификате или закрытом ключе может привести к невозможности открыть веб-интерфейс по HTTPS. … … 59 59 60 60 61 {{{#!div class="wiki admonition warning"62 '''Внимание.''' \\ 63 Плата SW-01 не поддерживает зашифрованные закрытые ключи. Попытка загрузить ключ с заголовком {{{ -----BEGIN ENCRYPTED PRIVATE KEY-----}}} приводит к перезагрузке платы. Используйте только незашифрованный ключ PKCS!#8 в формате PEM с заголовком {{{-----BEGIN PRIVATE KEY-----}}}.61 {{{#!div style="background-color: #fff8dc; border: 1px solid #e0c66c; border-left: 5px solid #d39e00; padding: 8px 12px; margin: 10px 0" 62 '''Внимание.''' \\ 63 Плата SW-01 не поддерживает зашифрованные закрытые ключи. Попытка загрузить ключ с заголовком {{{BEGIN ENCRYPTED PRIVATE KEY}}} приводит к перезагрузке платы. Используйте только незашифрованный ключ PKCS!#8 в формате PEM с заголовком {{{BEGIN PRIVATE KEY}}}. 64 64 }}} 65 65 … … 70 70 71 71 В настоящем примере используется OpenSSL для Windows в сборке Shining Light Productions. Установочный пакет можно скачать на странице [https://slproweb.com/products/Win32OpenSSL.html Win32/Win64 OpenSSL Installer for Windows], но вы можете использовать любую другую программу или сборку OpenSSL. При использовании другой программы команды могут отличаться, однако параметры создаваемого сертификата и ключа должны соответствовать требованиям этой инструкции. 72 73 Приведённые далее команды рассчитаны на OpenSSL 3.5 и совместимы с OpenSSL 4.x. 72 74 73 75 После установки откройте командную строку Windows. Для этого нажмите {{{Win-R}}}, введите {{{cmd}}} и нажмите Enter. … … 76 78 {{{openssl version}}} 77 79 78 Команда {{{openssl}}} запускает программу OpenSSL, а подкоманда {{{version}}} выводит её версию. Приведённые далее команды рассчитаны на OpenSSL 3.5 и совместимы с OpenSSL 4.x.80 Команда {{{openssl}}} запускает программу OpenSSL, а подкоманда {{{version}}} выводит её версию. 79 81 80 82 Если Windows выводит сообщение, что команда {{{openssl}}} не найдена, временно добавьте каталог программы в переменную {{{PATH}}} текущего окна CMD: \\ 81 83 {{{set "PATH=C:\Program Files\OpenSSL-Win64\bin;%PATH%"}}} 82 84 83 Где:84 * {{{set}}} - задаёт переменную среды в текущем окне CMD;85 * {{{PATH}}} - список каталогов, в которых Windows ищет исполняемые файлы;86 * {{{C:\Program Files\OpenSSL-Win64\bin}}} - стандартный каталог {{{openssl.exe}}} для 64-разрядной сборки;87 * {{{%PATH%}}} - сохраняет остальные каталоги, которые уже содержались в {{{PATH}}}.88 89 85 Изменение действует только до закрытия текущего окна CMD. Если OpenSSL установлен в другом каталоге, укажите фактический путь к папке {{{bin}}}. 90 86 … … 96 92 == 5. Создание рабочего каталога == 97 93 98 Создайте отдельный каталогдля файлов УЦ (Удостоверяющий центр) и платы: \\94 Для удобства создайте отдельную рабочую папку для файлов УЦ (Удостоверяющий центр) и платы: \\ 99 95 {{{mkdir "%USERPROFILE%\equipment-certificates"}}} 100 96 … … 117 113 === 6.1. Создание закрытого ключа УЦ === 118 114 119 {{{#!div class="wiki admonition warning"115 {{{#!div style="background-color: #fff8dc; border: 1px solid #e0c66c; border-left: 5px solid #d39e00; padding: 8px 12px; margin: 10px 0" 120 116 '''Внимание.''' \\ 121 117 Файлы {{{mc04-ca.key}}} и {{{sw01.key}}} являются закрытыми ключами. \\ 122 Любой человек, получивший закрытый ключ платы, сможет выдавать себя за эту плату. Компрометация ключа локального УЦ позволит выпускать сертификаты, которым будут доверять компьютеры с установленным корневым сертификатом этого УЦ.118 Любой человек, получивший закрытый ключ платы, сможет выдавать себя за эту плату. Компрометация ключа локального УЦ позволит выпускать сертификаты, которым будут доверять компьютеры с установленным корневым сертификатом этого УЦ. 123 119 }}} 124 120 … … 130 126 OpenSSL запросит пароль для защиты ключа. Введите стойкий пароль и сохраните его в защищённом месте. При вводе пароля символы в CMD не отображаются - это нормальное поведение. 131 127 132 Ключ УЦ защищается паролем, потому что он используется вручную при выпуске сертификатов. Ключ SW-01, напротив, должен загружаться серверомавтоматически после включения платы, поэтому его нельзя защитить паролем.128 Ключ УЦ защищается паролем, потому что он используется вручную при выпуске сертификатов. Ключ SW-01, напротив, должен загружаться автоматически после включения платы, поэтому его нельзя защитить паролем. 133 129 134 130 Проверьте первую строку ключа УЦ: \\ … … 141 137 142 138 '''Этот зашифрованный ключ предназначен только для локального УЦ и не загружается в SW-01.''' 139 143 140 [[Image(настройка HTTPS ред-03.png, align=center)]] 141 144 142 === 6.2. Создание корневого сертификата УЦ === 145 143 … … 202 200 == 8. Создание запроса на сертификат SW-01 == 203 201 202 Сертификат выпускается только на IP-адрес платы SW-01. 203 204 204 Введите команду, заменив {{{192.168.20.39}}} на фактический IP-адрес платы: 205 205 … … 253 253 254 254 '''До загрузки в SW-01 выполните все проверки из этого раздела.''' 255 256 === 10.1. Проверка цепочки доверия === 255 ---- 256 '''Проверка цепочки доверия''' 257 257 258 258 {{{openssl verify -CAfile mc04-ca.crt sw01.crt}}} … … 267 267 sw01.crt: OK 268 268 }}} 269 270 === 10.2. Проверка IP-адреса === 269 ---- 270 '''Проверка IP-адреса''' 271 271 272 272 {{{openssl x509 -in sw01.crt -noout -checkip 192.168.20.39}}} … … 279 279 }}} 280 280 281 === 10.3. Проверка срока и назначения === 281 ---- 282 '''Проверка срока и назначения''' 282 283 283 284 {{{openssl x509 -in sw01.crt -noout -subject -issuer -dates -ext subjectAltName,basicConstraints,keyUsage,extendedKeyUsage}}} … … 290 291 * {{{Digital Signature}}}; 291 292 * {{{TLS Web Server Authentication}}}. 292 293 === 10.4. Проверка соответствия ключа сертификату === 293 ---- 294 '''Проверка соответствия ключа сертификату''' 294 295 295 296 Получите открытый ключ из закрытого ключа платы: … … 321 322 Если ключ соответствует сертификату, CMD сообщит, что различия не найдены. 322 323 323 [[Image(настройка HTTPS ред-08.png, align=center )]]324 [[Image(настройка HTTPS ред-08.png, align=center, 99%)]] 324 325 325 326 == 11. Загрузка сертификата в SW-01 == … … 363 364 * используется незашифрованный ключ с заголовком {{{BEGIN PRIVATE KEY}}}. 364 365 365 {{{#!div class="wiki admonition warning"366 {{{#!div style="background-color: #fff8dc; border: 1px solid #e0c66c; border-left: 5px solid #d39e00; padding: 8px 12px; margin: 10px 0" 366 367 '''Внимание.''' \\ 367 368 После нажатия '''ОК''' сертификат и ключ немедленно загружаются в плату. Не нажимайте '''ОК''', пока не выполнены все проверки предыдущего раздела. … … 384 385 == 12. Установка корневого сертификата == 385 386 386 Корневой сертификат можно добавить либо в доверенное хранилище Windows, либо в локальное хранилище отдельного браузера. В первом случае сертификату будут доверять приложения и браузеры, использующие системное хранилище Windows. Во втором случае доверие будет действовать только в том браузере и профиле, в которые импортирован сертификат, не затрагивая Windows, другие браузеры и приложения. Например, Mozilla Firefox позволяет импортировать корневой сертификат в собственное хранилище выбранного профиля. 387 388 Перед установкой выведите SHA-256-отпечаток корневого сертификата: \\ 387 Корневой сертификат можно добавить либо в доверенное хранилище Windows, либо в локальное хранилище отдельного браузера. В первом случае сертификату будут доверять приложения и браузеры, использующие системное хранилище Windows. Во втором случае доверие будет действовать только в том браузере и профиле, в которые импортирован сертификат, не затрагивая Windows, другие браузеры и приложения. 388 389 Если файл передавался на другой компьютер, сравните отпечаток с исходным по независимому каналу. Отпечаток позволяет убедиться, что устанавливается именно созданный вами сертификат. 390 389 391 {{{openssl x509 -in mc04-ca.crt -noout -fingerprint -sha256}}} 390 392 391 Где:392 * {{{-fingerprint}}} - выводит отпечаток сертификата;393 * {{{-sha256}}} - вычисляет отпечаток с помощью SHA-256.394 395 Отпечаток позволяет убедиться, что устанавливается именно созданный вами сертификат. Если файл передавался на другой компьютер, сравните отпечаток с исходным по независимому каналу.396 393 397 394 === 12.1. Установка корневого сертификата в хранилище Windows через CMD === … … 407 404 * {{{mc04-ca.crt}}} - добавляемый открытый сертификат УЦ. 408 405 409 {{{#!div class="wiki admonition warning"406 {{{#!div style="background-color: #fff8dc; border: 1px solid #e0c66c; border-left: 5px solid #d39e00; padding: 8px 12px; margin: 10px 0" 410 407 '''Внимание.''' \\ 411 408 Установка корневого сертификата локального УЦ в доверенное хранилище Windows означает, что операционная система и использующие это хранилище приложения будут доверять всем сертификатам, подписанным данным УЦ. Если закрытый ключ УЦ будет скомпрометирован, злоумышленник сможет выпускать сертификаты, которым этот компьютер будет доверять. … … 431 428 === 12.2. Установка корневого сертификата только в браузер === 432 429 '''на примере Mozila Firefox''' 433 434 Если сертификат должен использоваться только в браузер, его можно импортировать в собственное хранилище выбранного профиля браузера. В этом случае доверие к локальному УЦ не добавляется в Windows и не распространяется на другие браузеры и приложения.435 436 Приведем пример для браузера Firefox.437 430 438 431 Для установки сертификата: … … 445 438 1. Закройте и заново откройте Firefox, затем перейдите на {{{https://192.168.20.39}}}. 446 439 447 {{{#!div class="wiki admonition warning"440 {{{#!div style="background-color: #fff8dc; border: 1px solid #e0c66c; border-left: 5px solid #d39e00; padding: 8px 12px; margin: 10px 0" 448 441 '''Внимание.''' \\ 449 442 Устанавливайте корневой сертификат {{{mc04-ca.crt}}}, а не сертификат платы {{{sw01.crt}}}. Не импортируйте в браузер или хранилище Windows закрытые ключи {{{mc04-ca.key}}} и {{{sw01.key}}}. … … 455 448 == 13. Проверка HTTPS == 456 449 457 === 13.1. Проверка через браузер === 450 '''Проверка через браузер''' 458 451 459 452 Откройте: … … 467 460 * браузер не сообщает о несоответствии IP-адреса. 468 461 469 === 13.2. Проверка TLS 1.3 === 462 ---- 463 464 '''Проверка TLS 1.3''' 470 465 471 466 В CMD выполните: … … 494 489 495 490 Параметр {{{-tls1_2}}} принудительно выбирает TLS 1.2. Успешное соединение подтверждает возможность работы клиентов, которые ещё не используют TLS 1.3. 496 == 14. Замена сертификата == 491 492 == 14. Дополнительная информация == 493 494 === 14.1 Замена сертификата === 497 495 498 496 До окончания срока действия создайте новый ключ и новый запрос, выпустите новый сертификат и повторите загрузку. Создание нового ключа предпочтительнее повторного использования старого: это ограничивает последствия возможной незамеченной компрометации предыдущего ключа. … … 500 498 До нажатия '''ОК''' проверьте новую пару командами из раздела '''Проверка сертификата и ключа'''. Сохраните прежние рабочие файлы до успешной проверки нового HTTPS-соединения. 501 499 502 == 15. Удаление SSL-сертификата==500 === 14.2 Удаление SSL-сертификата === 503 501 504 502 Подключитесь по SSH к плате SW-01. Данные по умолчанию: … … 510 508 {{{ls -l /usr/share/sw/server.cer}}} 511 509 512 Где:513 * {{{ls}}} - выводит сведения о файле;514 * {{{-l}}} - включает подробный формат с правами, владельцем, размером и временем изменения;515 * {{{/usr/share/sw/server.cer}}} - файл активного сертификата HTTPS.516 517 510 При необходимости создайте резервную копию сертификата: 518 511 … … 538 531 {{{reboot}}} 539 532 540 {{{#!div class="wiki admonition warning"533 {{{#!div style="background-color: #fff8dc; border: 1px solid #e0c66c; border-left: 5px solid #d39e00; padding: 8px 12px; margin: 10px 0" 541 534 '''Внимание.''' \\ 542 535 Во время перезагрузки соединения с платой, включая SSH и веб-интерфейс, будут разорваны. Перед выполнением {{{reboot}}} убедитесь, что временное прекращение управления оборудованием допустимо. … … 552 545 {{{reboot}}} 553 546 554 == 16. Возможные ошибки==547 === 14.3 Возможные ошибки === 555 548 556 549 '''OpenSSL не найден''' \\ … … 580 573 При необходимости повторно загрузите проверенные {{{sw01.crt}}} и {{{sw01.key}}} через HTTP. 581 574 582 == 1 7. Результат настройки ==583 584 После выполнения инструкции плата SW-01 доступна по HTTPS по своему IP-адресу. Для подтверждения подлинности используется сертификат ECDSA P-256, подписанный локальным УЦ, а закрытый ключ платы хранится в незашифрованном формате PKCS!#8 PEM , который практически проверен на совместимость с SW-01.575 == 15. Результат настройки == 576 577 После выполнения инструкции плата SW-01 доступна по HTTPS по своему IP-адресу. Для подтверждения подлинности используется сертификат ECDSA P-256, подписанный локальным УЦ, а закрытый ключ платы хранится в незашифрованном формате PKCS!#8 PEM. 585 578 586 579 Установка корневого сертификата локального УЦ позволяет Windows и браузеру проверить сертификат платы без предупреждения о неизвестном издателе. Закрытый ключ УЦ при этом остаётся только у администратора и не передаётся в блок. Работа HTTPS проверяется для TLS 1.2 и TLS 1.3 с помощью OpenSSL и браузера. 587 ---- 580 581 ---- 582 588 583 [[wiki:Examples3u|Примеры настройки аппаратуры MC04-DSL-3U]]
![[MC-04 logo]](/mc-04/chrome/site/logo.png)