Kostenitskiy_A
@Kostenitskiy_A

Запросы HTTPS между ASP.NET Core 6 и React?

Создан проект ASP.Net Core 6 и React клиент соответственно. Запросы отправляемые с клиента на сервер происходят по протоколу http. При использовании Swagger'а, обратил внимание, что используется безопасное https подключение, как я понял по сгенерированному протоколу SSL на локальном хосте.

6293e9b990ddc020714752.jpeg

Могу ли я использовать этот сертификат для подключение React-клиента на сервер? В интернете уже находил решение данной проблемы с использованием react-scripts, но в моём случае это не подходит, т. к. клиент создавался с нуля с использованием webpack'а. Клиент разворачивается с использованием webpack-dev-server с настройкой https: true, но после запуска сервера, браузер сразу же определяет мой сертификат как не защищённый.

6293eb90ad401515206934.jpeg

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddCors(options =>
    options.AddPolicy("CORSPolicy",
        builder =>
        {
            builder
            .AllowCredentials()
            .AllowAnyOrigin()
            .AllowAnyHeader()
            .WithOrigins("https://localhost:5500");
        }));

var connection = builder.Configuration.GetConnectionString("DefaultDatabase");
builder.Services.AddDbContext<ApplicationContext>(options => options.UseSqlServer(connection));

builder.Services.AddControllers();

builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

builder.Services.AddTransient<IAuthenticationProvider, AuthenticationProvider>();
builder.Services.AddTransient<IUserProvider, UserProvider>();
builder.Services.AddTransient<ITodoProvider, TodoProvider>();

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseCors("CORSPolicy");

app.MapControllers();

app.Run();
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
igolets
@igolets
Программист C#, MSSQL
Если приложение для широкой аудитории, то нет, нельзя. Браузер клиента будет видеть этот сертификат как не доверенный и будет блокировать запросы. В зависимости от того, где размещается приложение, нужно смотреть, какие есть возможности по покупке своего https сертификата. Для собственного хостинга можно использовать letsencrypt, для разных облаков нужно смотреть в их документации. Вот, например, на Яндекс Облаке.

Если приложение корпоративное и все пользователи работают в контролируемой среде, то можно создать корневой сертификат для организации, централизовано раздать его на все компьютеры и потом создавать сертификаты https свои, подписанные этим корневым.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы