Обновить
8K+
2
Никонов Александр Юрьевич@BELPORTAL

Fullstack-разработчик (C#, PHP, 1C, JS)

8
Рейтинг
Отправить сообщение

Не невнимательный — этого в статье действительно нет, режим «офлайн-пакет» у меня пока только в планах. Так что честно: готового «скачать-на-флешку-поставить» в текущей версии нет.

Что можно сделать прямо сейчас, обходным путём:

  1. На машине с интернетом (подходящей по версии Windows или хотя бы совместимой) запустить утилиту от администратора — она поставит недостающие корневые сертификаты в реестр.

  2. Экспортировать ветку HKLM\SOFTWARE\Microsoft\SystemCertificates\ROOT\Certificates в .reg-файл (правой кнопкой в regedit → «Экспорт»). Файл получится большой — там бинарные Blob-значения, — но это рабочий способ.

  3. На офлайн-машине импортировать этот .reg (от администратора) и перезагрузиться.

Два важных нюанса для XP:

  • На XP предварительно нужен .NET Framework 3.5 — утилита без него не запустится (об этом как раз писал x89377 выше, и да, в статье про 2.0 была ошибка — извиняюсь).

  • Экспорт/импорт ветки реестра с сертификатами между разными версиями Windows в целом переносим, но лучше делать это между машинами одной архитектуры (x86 → x86), чтобы не ловить сюрпризов.

Полноценный офлайн-режим (скачать пакет на одной машине → поставить на другой без сети) я как раз планирую добавить — спасибо, что подтвердили, что это востребовано. Если хотите, могу отдельно черкнуть, когда будет готово.

Вы абсолютно правы, и мне искренне неловко. Сразу признаюсь: текст статьи я прогонял через ИИ для вычитки орфографии и стиля — и он, помимо правок по делу, дописал от себя то, чего в статье быть не должно было. Фраза «не требует .NET выше 2.0» — как раз его рук дело (я имел в виду «работает даже на древних машинах», а получилось фактически неверно). Так же он «поправил» и некоторые цифры. Виноват: надо было вычитывать внимательнее, а не доверять целиком. Спасибо, что заметили и ткнули — исправил.

По делу:

  • .NET 3.5 — да, требование именно такое, из-за HashSet<T>. Формулировку в статье поправил.

  • 1081 сертификат — тут, скорее всего, расхождение в том, что считать. В CTL лежит полный список записей, включая отозванные, просроченные и не-корневые; утилита же отбирает только то, что реально нужно поставить и что отсутствует в локальном хранилище. Плюс список со временем растёт — в свежем STL действительно может быть больше тысячи записей. «~130» в статье было неудачным примером из старого лога; корректнее говорить «порядка сотен–тысячи записей в CTL, из которых ставятся только недостающие». Поправлю.

Ещё раз извините за путаницу — она моя, а не ваша.

Да, собирается. Достаточно csc.exe из состава .NET Framework 3.5 (C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe) — Visual Studio не нужна. Кладёте исходник в папку, запускаете csc /out:UpdateRootCertificates.exe Program.cs, и всё. Единственный нюанс — целиться надо именно в 3.5 (из-за HashSet<T>), а не в 2.0.

Отдельно оговорюсь: в тексте статьи про .NET 2.0 была моя ошибка (точнее — редакционная), об этом ниже в ответе x89377.

Огромное спасибо за отзыв! Как разработчику, мне невероятно приятно слышать это от реального бухгалтера, да еще и с таким стажем использования.А что входит в оставшиеся 10% проблем, которые программа пока не решает? Буду рад узнать, возможно, это можно будет исправить в следующих обновлениях.

Информация

В рейтинге
694-й
Откуда
Гомель, Гомельская обл., Беларусь
Дата рождения
Зарегистрирован
Активность

Специализация

Десктоп разработчик, Бэкенд разработчик
Ведущий
Python
ООП
Базы данных
REST
Java
C++
C++ stl
C#
.NET Core
ASP.NET MVC