Задать вопрос
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();
  • Вопрос задан
  • 177 просмотров
Подписаться 2 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
igolets
@igolets
Программист C#, MSSQL
Если приложение для широкой аудитории, то нет, нельзя. Браузер клиента будет видеть этот сертификат как не доверенный и будет блокировать запросы. В зависимости от того, где размещается приложение, нужно смотреть, какие есть возможности по покупке своего https сертификата. Для собственного хостинга можно использовать letsencrypt, для разных облаков нужно смотреть в их документации. Вот, например, на Яндекс Облаке.

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

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽