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

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

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

Лечим ошибки SSL на старых Windows: пишем утилиту обновления корневых сертификатов на C#

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели3.8K

Привет, Хабр!

Сегодня хочу рассказать про боль, которая, думаю, знакома многим, кто хоть раз сталкивался с поддержкой устаревших Windows-систем. А также про то, как небольшая консольная утилита на C# решила проблему, которая годами заставляла меня и моих пользователей хвататься за голову.

С чего всё началось

Всё началось с проекта BELPORTAL — набора решений для работы с государственными порталами Беларуси. Среди прочего там есть клиент для доступа к порталам, и вот с ним-то и возникла проблема.

Пользователи ставили BELPORTAL на Windows 7, Windows XP, на терминальные серверы — словом, туда, где всё ещё жил старый добрый софт. И примерно через одного получали вот такую картину:

Не удается установить защищенное соединение с сервером

или на более свежих системах:

Ошибка 0x800B0101

или классическое:

Сертификат сервера не является доверенным

При этом HTTP-сайты открывались, интернет работал, антивирус молчал. Но HTTPS — ни в какую.

Диагностика: в чём оказалась проблема

Копнув глубже, я выяснил банальную вещь: устаревшее хранилище корневых сертификатов. Windows хранит список доверенных корневых сертификатов в реестре по пути:

HKLM\SOFTWARE\Microsoft\SystemCertificates\ROOT\Certificates

Microsoft регулярно обновляет этот список через Windows Update. Проблема в том, что:

На Windows XP Windows Update для сертификатов уже давно не работает.
На Windows 7 обновления сертификатов прекратились с окончанием поддержки.
На корпоративных машинах политиками часто отключён Windows Update целиком.
На терминальных серверах обновление сертификатов — это отдельный квест.
На изолированных системах (POS-терминалы, банкоматы, медицинское оборудование) интернета нет вообще.

Читать далее

Как я один создал браузер для бухгалтеров: история BELPORTAL от снимков реестра до WebView2 и 56 млн скачиваний

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.5K

Когда-то работа бухгалтера с госпорталами была настоящим квестом: IE, ActiveX и километры инструкций. Я расскажу, как один создал BELPORTAL — программу, которую скачали 56 млн раз. Путь от снимков реестра Windows до полноценного браузера на WebView2, борьба с кризисом Avest и спасение отчетных периодов.

Читать далее

Информация

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

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

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