Статус: Новичок
Группы: Участники
Зарегистрирован: 07.11.2024(UTC) Сообщений: 2  Откуда: Уфа
|
Добрый день! Есть веб-сервис и веб-приложение на .NET Core 6, используется LibCore "старой версии" (2023.9.26.1). Сама LibCore сейчас используется для интеграции с УЦ Крипто ПРО под Windows и Linux. Сервис и приложение работают под Astra Linux 1.6-1.7. Для простоты прикладываю пример кода инициализации сервиса - поднимается два HTTPS-endpoint с ГОСТ-сертификатами, один сертификат грузится из pfx, второй из хранилища. На машине установлен Крипто ПРО УЦ CSP. Код:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls13;
LibCore.Initializer.Initialize(LibCore.Initializer.DetouredAssembly.All,
debugFlags: LibCore.Initializer.DebugFlags.DisableEnvelopedCmsDetours,
debug: true);
var builder = WebApplication.CreateBuilder();
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.WebHost.ConfigureKestrel(serverOptions =>
{
serverOptions.Listen(IPAddress.Any, 555);
serverOptions.ConfigureHttpsDefaults(httpsOptions =>
{
httpsOptions.SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls13;
});
serverOptions.Listen(IPAddress.Any, 666, listenOptions =>
{
var cert = new X509Certificate2(@"GOST.pfx", "123456qweRTY");
listenOptions.UseHttps(cert);
});
serverOptions.Listen(IPAddress.Any, 777, listenOptions =>
{
var storeName = StoreName.My;
var storeLocation = StoreLocation.CurrentUser;
using (CpX509Store store = new CpX509Store(storeName, storeLocation))
{
store.Open(OpenFlags.ReadWrite);
var cert = store.Certificates.Find(X509FindType.FindByThumbprint, "7B7374449C4AF10EE30758BAF3BAF6B12F0D9FB5", false);
listenOptions.UseHttps(cert.First());
store.Close();
}
});
});
var app = builder.Build();
app.MapControllers();
app.Run();
Данный сервис успешно запускается под Linux, но при обращении к нему имеем ошибку: Вопросы: 1) Должно ли это вообще работать? Поддерживается ли запуск HTTPS с ГОСТ-овой криптографией? Или тут лучше использовать nginx-gost-проксирование? 2) Поможет решить данную проблему переход на последний LibCore с новым интерфейсов? Бегло посмотрел, там сейчас хранилище CpX509Store возвращает CpX509Certificate2-сертификат, не понятно как его подсунуть в инфраструктуру сервера .NET: Код:
using (CpX509Store store = new CpX509Store(storeName, storeLocation))
{
store.Open(OpenFlags.ReadWrite);
var cert = store.Certificates.Find(X509FindType.FindByThumbprint, "7B7374449C4AF10EE30758BAF3BAF6B12F0D9FB5", false);
listenOptions.UseHttps(cert.First());
store.Close();
}
Отредактировано пользователем 5 месяцев назад
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 148  Поблагодарили: 31 раз в 30 постах
|
Добрый день!
Используйте "nginx-gost-проксирование". |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 07.11.2024(UTC) Сообщений: 2  Откуда: Уфа
|
Спасибо, через nginx завелось - будем использовать его.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close