Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline 6si4fr  
#1 Оставлено : 7 ноября 2022 г. 11:11:56(UTC)
6si4fr

Статус: Новичок

Группы: Участники
Зарегистрирован: 07.11.2022(UTC)
Сообщений: 3
Российская Федерация

Добрый день!

Реализую TLS соединение с использованием .NET 6
Данный код на Windows отрабатывает. Сертификат находит, требует ввода пароля при обращении к сайту и сайт возвращает корректный ответ.
На Linux код отрабатывает частично. Сертификат находит, но подтверждения при обращении к сайту не просит, связь между открытой частью и закрытой не устанавливает по итогу ошибка ssl соединения.

Подскажите, пожалуйста, в чем может быть загвоздка?

Код:

private static async Task Main(string[] args)
{
    var tt = FindCerts("40601d207ee44d9cc1679597635ff8d7").First();

    var handler = new HttpClientHandler
    {
        ClientCertificateOptions = ClientCertificateOption.Manual,
        SslProtocols = SslProtocols.Tls12
    };


    handler.CheckCertificateRevocationList = false;
    handler.ClientCertificates.Add(tt);

    var client = new HttpClient(handler);


    handler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) =>
    {
        return true;
    };

    var result = await client.GetAsync("");
    var rescont = await result.Content.ReadAsStringAsync();


    Console.WriteLine(result.StatusCode);
    Console.WriteLine();
    Console.WriteLine(rescont);
}

public static X509Certificate2Collection FindCerts(string serialNumber)
{
    foreach (var storeLoc in new StoreLocation[] { StoreLocation.CurrentUser })
    {
        foreach (var store in new string[] { "uMy", "mMy", "My", "umy", "mmy", "my", "mroot", "uroot", "root", "mRoot", "uRoot", "Root", })
        {
            var searchType = X509FindType.FindBySerialNumber;

            var certificatesStore = new X509Store(store, storeLoc);
            certificatesStore.Open(OpenFlags.ReadOnly | OpenFlags.IncludeArchived);

            var matchingCertificates = certificatesStore.Certificates.Find(searchType, serialNumber, false);


            if (matchingCertificates.Any())
            {
                return matchingCertificates;
            }

            certificatesStore.Close();
        }
    }

    return null;
}
Offline Андрей *  
#2 Оставлено : 7 ноября 2022 г. 12:22:44(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,512
Мужчина
Российская Федерация

Сказал «Спасибо»: 554 раз
Поблагодарили: 2251 раз в 1756 постах
Здравствуйте.

Покажите вывод certmgr для нужного хранилища, есть ссылка на контейнер у сертификата?

Цитата:

var store in new string[]


а если по ошибке сертификат будет добавлен не в то хранилище и без ссылки на контейнер, как поведёт себя код?
Техническую поддержку оказываем тут
Наша база знаний
Offline 6si4fr  
#3 Оставлено : 7 ноября 2022 г. 12:51:10(UTC)
6si4fr

Статус: Новичок

Группы: Участники
Зарегистрирован: 07.11.2022(UTC)
Сообщений: 3
Российская Федерация

Цитата:
Покажите вывод certmgr для нужного хранилища

Можете дать ссылку/инструкцию для предоставления ответа?

Цитата:
есть ссылка на контейнер у сертификата?

Как это проверить, где посмотреть?

Цитата:
а если по ошибке сертификат будет добавлен не в то хранилище и без ссылки на контейнер, как поведёт себя код?

На данный момент не предусмотрен данный сценарий.

Offline Андрей *  
#4 Оставлено : 7 ноября 2022 г. 13:48:03(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,512
Мужчина
Российская Федерация

Сказал «Спасибо»: 554 раз
Поблагодарили: 2251 раз в 1756 постах
под пользователем, от которого работает код:

/opt/cprocsp/bin/amd64/certmgr -list -cert -store uMy

/opt/cprocsp/bin/amd64/certmgr -list -cert -store uCa

/opt/cprocsp/bin/amd64/certmgr -list -cert -store uRoot

Техническую поддержку оказываем тут
Наша база знаний
Offline 6si4fr  
#5 Оставлено : 7 ноября 2022 г. 14:11:54(UTC)
6si4fr

Статус: Новичок

Группы: Участники
Зарегистрирован: 07.11.2022(UTC)
Сообщений: 3
Российская Федерация

Прикладываю файлы.
uCa.txt (11kb) загружен 3 раз(а).
uMy.txt (2kb) загружен 4 раз(а).
uRoot.txt (10kb) загружен 1 раз(а).
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.