Changes between Version 1 and Version 2 of Examples3uHttps
- Timestamp:
- Aug 25, 2026, 5:31:00 PM (6 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Examples3uHttps
v1 v2 1 1 [[wiki:Examples3u|Примеры настройки аппаратуры MC04-DSL-3U]] 2 2 3 [[PageOutline(1-10, Содержание:)]] 4 3 5 == 1. Короткая инструкция == 4 5 6 7 Сертификат и ключ загружаются в веб-интерфейсе блока MC04-DSL-3U на вкладке '''Разное''' в пункте '''Сертификат'''. Сертификат должен быть выпущен с конкретным IP-адресом платы SW-01. 8 Для получения сертификата и ключа обратитесь к администратору Вашей сети. 6 Сертификат и ключ загружаются в веб-интерфейсе блока MC04-DSL-3U на вкладке '''Разное''' в пункте '''Сертификат'''. Сертификат должен быть выпущен с конкретным IP-адресом платы SW-01. \\ 7 Для получения сертификата и ключа обратитесь к администратору Вашей сети. \\ 9 8 Если вы хотите самостоятельно выпустить сертификат, то ниже представлена полная инструкция. 10 9 … … 28 27 * алгоритм закрытого ключа - ECDSA; 29 28 * эллиптическая кривая - P-256 ({{{prime256v1}}}, также называется {{{secp256r1}}}); 30 * формат закрытого ключа платы - незашифрованный PKCS #8 в формате PEM;29 * формат закрытого ключа платы - незашифрованный PKCS!#8 в формате PEM; 31 30 * алгоритм подписи сертификата - ECDSA с SHA-256; 32 31 * формат сертификата - X.509 v3 в формате PEM; … … 34 33 35 34 {{{#!div class="wiki admonition note" 36 '''Примечание.''' 35 '''Примечание.''' \\ 37 36 Алгоритм сертификата и алгоритм шифрования TLS-трафика - разные параметры. ECDSA используется для подтверждения подлинности платы и цифровой подписи. После установления соединения прикладные данные шифруются согласованным набором TLS, например AES-GCM или ChaCha20-Poly1305. 38 37 }}} … … 52 51 53 52 {{{#!div class="wiki admonition warning" 54 '''Внимание.''' 53 '''Внимание.''' \\ 55 54 До загрузки сертификата убедитесь, что у вас сохраняется альтернативный доступ к плате по HTTP или SSH. Ошибка в сертификате или закрытом ключе может привести к невозможности открыть веб-интерфейс по HTTPS. 56 55 }}} … … 58 57 59 58 {{{#!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-----}}}. 62 61 }}} 63 62 … … 71 70 После установки откройте командную строку Windows. Для этого нажмите {{{Win-R}}}, введите {{{cmd}}} и нажмите Enter. 72 71 73 Проверьте доступность OpenSSL командой: 72 Проверьте доступность OpenSSL командой: \\ 74 73 {{{openssl version}}} 75 74 76 75 Команда {{{openssl}}} запускает программу OpenSSL, а подкоманда {{{version}}} выводит её версию. Приведённые далее команды рассчитаны на OpenSSL 3.5 и совместимы с OpenSSL 4.x. 77 76 78 Если Windows выводит сообщение, что команда {{{openssl}}} не найдена, временно добавьте каталог программы в переменную {{{PATH}}} текущего окна CMD: 77 Если Windows выводит сообщение, что команда {{{openssl}}} не найдена, временно добавьте каталог программы в переменную {{{PATH}}} текущего окна CMD: \\ 79 78 {{{set "PATH=C:\Program Files\OpenSSL-Win64\bin;%PATH%"}}} 80 79 … … 87 86 Изменение действует только до закрытия текущего окна CMD. Если OpenSSL установлен в другом каталоге, укажите фактический путь к папке {{{bin}}}. 88 87 89 Повторно выполните: 88 Повторно выполните: \\ 90 89 {{{openssl version}}} 91 90 92 91 [[Image(настройка HTTPS ред-01.png, align=center)]] 92 93 93 == 5. Создание рабочего каталога == 94 94 95 Создайте отдельный каталог для файлов УЦ (Удостоверяющий центр) и платы: 95 Создайте отдельный каталог для файлов УЦ (Удостоверяющий центр) и платы: \\ 96 96 {{{mkdir "%USERPROFILE%\equipment-certificates"}}} 97 97 … … 101 101 * {{{equipment-certificates}}} - название рабочего каталога. 102 102 103 Перейдите в созданный каталог: 103 Перейдите в созданный каталог: \\ 104 104 {{{cd /d "%USERPROFILE%\equipment-certificates"}}} 105 105 106 106 Все последующие команды выполняйте в этом каталоге. 107 107 108 [[Image(настройка HTTPS ред-02.png, align=center)]] 109 108 110 == 6. Создание локального центра сертификации == 109 111 … … 113 115 114 116 {{{#!div class="wiki admonition warning" 115 '''Внимание.''' 116 Файлы {{{mc04-ca.key}}} и {{{sw01.key}}} являются закрытыми ключами. 117 '''Внимание.''' \\ 118 Файлы {{{mc04-ca.key}}} и {{{sw01.key}}} являются закрытыми ключами. \\ 117 119 Любой человек, получивший закрытый ключ платы, сможет выдавать себя за эту плату. Компрометация ключа локального УЦ позволит выпускать сертификаты, которым будут доверять компьютеры с установленным корневым сертификатом этого УЦ. 118 120 }}} … … 127 129 Ключ УЦ защищается паролем, потому что он используется вручную при выпуске сертификатов. Ключ SW-01, напротив, должен загружаться сервером автоматически после включения платы, поэтому его нельзя защитить паролем. 128 130 129 Проверьте первую строку ключа УЦ: 131 Проверьте первую строку ключа УЦ: \\ 130 132 {{{findstr /B /L /C:"-----BEGIN" mc04-ca.key}}} 131 133 … … 139 141 === 6.2. Создание корневого сертификата УЦ === 140 142 141 Введите команду: 143 Введите команду: \\ 142 144 {{{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"}}} 143 145 … … 161 163 Срок действия УЦ выбран больше срока действия сертификата платы, потому что сертификат платы должен оставаться проверяемым в течение всего своего срока. Истечение корневого сертификата потребует заменить корневой сертификат в Windows и перевыпустить сертификаты оборудования. 162 164 163 Проверьте созданный сертификат: 165 Проверьте созданный сертификат: \\ 164 166 {{{openssl x509 -in mc04-ca.crt -noout -subject -issuer -dates -text}}} 165 167 166 168 У самоподписанного корневого сертификата значения {{{subject}}} и {{{issuer}}} должны совпадать. 169 167 170 [[Image(настройка HTTPS ред-04.png, align=center)]] 171 168 172 == 7. Создание закрытого ключа SW-01 == 169 173 170 Создайте ключ платы: 174 Создайте ключ платы: \\ 171 175 {{{openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -out sw01.key}}} 172 176 173 Команда создаёт закрытый ключ ECDSA P‑256 в незашифрованном формате PKCS #8 и сохраняет его в файл {{{sw01.key}}}.174 175 Проверьте заголовок ключа: 177 Команда создаёт закрытый ключ ECDSA P‑256 в незашифрованном формате PKCS!#8 и сохраняет его в файл {{{sw01.key}}}. 178 179 Проверьте заголовок ключа: \\ 176 180 {{{findstr /B /L /C:"-----BEGIN" sw01.key}}} 177 181 … … 181 185 }}} 182 186 183 Дополнительно проверьте структуру ключа: 187 Дополнительно проверьте структуру ключа: \\ 184 188 {{{openssl pkey -in sw01.key -check -noout}}} 185 189 … … 190 194 191 195 Если OpenSSL запрашивает пароль, был создан зашифрованный ключ. Такой файл загружать в SW-01 нельзя. 196 192 197 [[Image(настройка HTTPS ред-05.png, align=center)]] 198 193 199 == 8. Создание запроса на сертификат SW-01 == 194 200 … … 198 204 199 205 Параметры команды: 200 * {{{req -new}}} - создаёт новый запрос на сертификат PKCS #10;206 * {{{req -new}}} - создаёт новый запрос на сертификат PKCS!#10; 201 207 * {{{-key sw01.key}}} - подписывает запрос закрытым ключом платы и помещает в запрос соответствующий открытый ключ; 202 208 * {{{-out sw01.csr}}} - сохраняет запрос в файл {{{sw01.csr}}}; … … 210 216 Именно {{{subjectAltName}}}, а не {{{CN}}}, используется браузером для проверки IP-адреса. Значение должно быть записано с типом {{{IP}}}. 211 217 212 Проверьте запрос: 218 Проверьте запрос: \\ 213 219 {{{openssl req -in sw01.csr -noout -verify -text}}} 214 220 215 221 В выводе должны присутствовать IP-адрес платы и расширение {{{TLS Web Server Authentication}}} либо {{{serverAuth}}}. 222 216 223 [[Image(настройка HTTPS ред-06.png, align=center)]] 224 217 225 == 9. Выпуск сертификата SW-01 == 218 226 219 Подпишите запрос локальным УЦ: 227 Подпишите запрос локальным УЦ: \\ 220 228 {{{openssl x509 -req -in sw01.csr -CA mc04-ca.crt -CAkey mc04-ca.key -CAcreateserial -out sw01.crt -days 365 -sha256 -copy_extensions copy}}} 221 229 … … 236 244 237 245 После выполнения команды в каталоге также появится файл серийного номера УЦ. Его следует хранить вместе с файлами УЦ, чтобы серийные номера последующих сертификатов не повторялись. 246 238 247 [[Image(настройка HTTPS ред-07.png, align=center)]] 248 239 249 == 10. Проверка сертификата и ключа == 240 250 … … 307 317 308 318 Если ключ соответствует сертификату, CMD сообщит, что различия не найдены. 319 309 320 [[Image(настройка HTTPS ред-08.png, align=center)]] 321 310 322 == 11. Загрузка сертификата в SW-01 == 311 323 312 324 Сертификат и ключ загружаются в веб-интерфейсе блока MC04-DSL-3U на вкладке '''Разное''' в пункте '''Сертификат'''. 325 313 326 [[Image(настройка HTTPS ред-09.png, align=center)]] 314 327 315 328 Откроется новое окно '''Информация о сертификате SSL''', в котором нужно нажать '''Загрузить новый сертификат'''. 329 316 330 [[Image(настройка HTTPS ред-010.png, align=center)]] 317 331 318 332 Появится окно '''Загрузка сертификатов SSL'''. 333 319 334 [[Image(настройка HTTPS ред-011.png, align=center)]] 320 335 … … 346 361 347 362 {{{#!div class="wiki admonition warning" 348 '''Внимание.''' 363 '''Внимание.''' \\ 349 364 После нажатия '''ОК''' сертификат и ключ немедленно загружаются в плату. Не нажимайте '''ОК''', пока не выполнены все проверки предыдущего раздела. 350 365 }}} … … 356 371 357 372 Также нажмите '''ОК'''. 373 358 374 [[Image(настройка HTTPS ред-012.png, align=center)]] 359 375 360 После применения настроек откройте: 376 После применения настроек откройте: \\ 361 377 {{{https://192.168.20.39}}} 362 378 … … 367 383 Корневой сертификат можно добавить либо в доверенное хранилище Windows, либо в локальное хранилище отдельного браузера. В первом случае сертификату будут доверять приложения и браузеры, использующие системное хранилище Windows. Во втором случае доверие будет действовать только в том браузере и профиле, в которые импортирован сертификат, не затрагивая Windows, другие браузеры и приложения. Например, Mozilla Firefox позволяет импортировать корневой сертификат в собственное хранилище выбранного профиля. 368 384 369 Перед установкой выведите SHA-256-отпечаток корневого сертификата: 385 Перед установкой выведите SHA-256-отпечаток корневого сертификата: \\ 370 386 {{{openssl x509 -in mc04-ca.crt -noout -fingerprint -sha256}}} 371 387 … … 378 394 === 12.1. Установка корневого сертификата в хранилище Windows через CMD === 379 395 380 Установите корневой сертификат в хранилище текущего пользователя: 396 Установите корневой сертификат в хранилище текущего пользователя: \\ 381 397 {{{certutil -user -addstore Root mc04-ca.crt}}} 382 398 … … 389 405 390 406 {{{#!div class="wiki admonition warning" 391 '''Внимание.''' 407 '''Внимание.''' \\ 392 408 Установка корневого сертификата локального УЦ в доверенное хранилище Windows означает, что операционная система и использующие это хранилище приложения будут доверять всем сертификатам, подписанным данным УЦ. Если закрытый ключ УЦ будет скомпрометирован, злоумышленник сможет выпускать сертификаты, которым этот компьютер будет доверять. 393 409 … … 427 443 428 444 {{{#!div class="wiki admonition warning" 429 '''Внимание.''' 445 '''Внимание.''' \\ 430 446 Устанавливайте корневой сертификат {{{mc04-ca.crt}}}, а не сертификат платы {{{sw01.crt}}}. Не импортируйте в браузер или хранилище Windows закрытые ключи {{{mc04-ca.key}}} и {{{sw01.key}}}. 431 447 }}} … … 471 487 Строка {{{Ciphersuite}}} показывает согласованный набор шифров. Строка {{{Signature type}}} показывает алгоритм подписи сертификата, а {{{Peer Temp Key}}} - алгоритм временного обмена ключами. 472 488 473 Также можно проверить работу TLS 1.2 командой: 489 Также можно проверить работу TLS 1.2 командой: \\ 474 490 {{{echo. | openssl s_client -connect 192.168.20.39:443 -tls1_2 -brief}}} 475 491 … … 520 536 521 537 {{{#!div class="wiki admonition warning" 522 '''Внимание.''' 538 '''Внимание.''' \\ 523 539 Во время перезагрузки соединения с платой, включая SSH и веб-интерфейс, будут разорваны. Перед выполнением {{{reboot}}} убедитесь, что временное прекращение управления оборудованием допустимо. 524 540 }}} … … 535 551 == 16. Возможные ошибки == 536 552 537 '''OpenSSL не найден''' 553 '''OpenSSL не найден''' \\ 538 554 Если CMD выводит сообщение {{{openssl is not recognized}}}, проверьте каталог установки и добавьте его папку {{{bin}}} в {{{PATH}}} текущего окна CMD. 539 555 540 '''Ключ начинается с ENCRYPTED PRIVATE KEY''' 556 '''Ключ начинается с ENCRYPTED PRIVATE KEY''' \\ 541 557 Такой ключ защищён паролем и не поддерживается SW-01. Не загружайте его. Создайте новый незашифрованный ключ командой из раздела '''Создание закрытого ключа SW-01'''. 542 558 543 559 {{{#!div class="wiki admonition danger" 544 '''Опасность.''' 560 '''Опасность.''' \\ 545 561 Практически установлено, что попытка загрузки зашифрованного закрытого ключа приводит к перезагрузке SW-01. 546 562 }}} 547 563 548 564 549 '''Сертификат и ключ не соответствуют друг другу''' 565 '''Сертификат и ключ не соответствуют друг другу''' \\ 550 566 Повторите извлечение открытых ключей и сравнение через {{{fc /b}}}. Загружайте только ту пару, для которой различия не обнаружены. 551 567 552 '''Браузер сообщает о несоответствии адреса''' 568 '''Браузер сообщает о несоответствии адреса''' \\ 553 569 Проверьте IP-адрес в {{{subjectAltName}}} командой {{{openssl x509 -checkip}}}. Подключайтесь к тому же IP-адресу, который указан в сертификате. 554 570 555 '''Браузер не доверяет сертификату''' 571 '''Браузер не доверяет сертификату''' \\ 556 572 Убедитесь, что в хранилище текущего пользователя установлен именно {{{mc04-ca.crt}}}, а не сертификат платы. Проверьте SHA-256-отпечаток УЦ. Перезапустите браузер. 557 573 558 '''HTTPS не открывается после загрузки''' 574 '''HTTPS не открывается после загрузки''' \\ 559 575 Проверьте: 560 576 * доступность платы по HTTP или SSH; … … 569 585 == 17. Результат настройки == 570 586 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. 572 588 573 589 Установка корневого сертификата локального УЦ позволяет Windows и браузеру проверить сертификат платы без предупреждения о неизвестном издателе. Закрытый ключ УЦ при этом остаётся только у администратора и не передаётся в блок. Работа HTTPS проверяется для TLS 1.2 и TLS 1.3 с помощью OpenSSL и браузера. 574 575 590 ---- 576 591 [[wiki:Examples3u|Примеры настройки аппаратуры MC04-DSL-3U]]
![[MC-04 logo]](/mc-04/chrome/site/logo.png)