Как использовать SSL с приложением asp-net-core в подпапке - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть пара приложений.Одним из них является клиентское приложение angular-cli.Другое приложение AspNetCore WebApi, которое передает данные моему угловому клиенту.Я настроил оба подпункта (т. Е. Размещен в подпапках IIS с использованием функции добавления приложения на существующем веб-сайте.

Конфигурация для углового приложения заключалась в создании пары флагов, которые позволили быприложение для работы из подпапки.

ng build --deploy-url=/mock-v1/ --base-href=/mock-v1/

После сборки с этими флагами приложение отлично работает в подпрограмме клиента.

http://app/mock-v1/

Далее я собираю свой AspNetCoreПриложение с файлом запуска, настроенным как со следующими изменениями.

// ConfigureServices
services.AddCors(c => c.AddPolicy("CorsPolicy",
    builder => builder.AllowAnyOrigin()
    .AllowAnyMethod()
    .AllowAnyHeader()));

// Configure
app.UseStaticFiles("/data");
app.UsePathBase("/data");

После создания и развертывания этого в IIS я могу успешно посетить мою тестовую страницу следующим образом с примером вывода, показывающим «[" value1 "," value2"]":

http://app/data/api/values

Далее я настраиваю самодостаточный ssl-сертификат для своих локальных доменов, как указано в файле hosts:

PS C:\> New-SelfSignedCertificate -DnsName app, data -CertStoreLocation 
   "cert:\LocalMachine\My"

Локально, вот результаты:

http://app/mock-v1/            // works 
http://app/data/api/values     // works
https://app/mock-v1/           // doesn't work
https://app/data/api/values    // doesn't work

На сервере, где я успешно установил SSL для корневого домена:

http://[domain].com/mock-v1/            // works 
http://[domain].com/data/api/values     // doesn't work
https://[domain].com/mock-v1/           // works
https://[domain].com/data/api/values    // doesn't work

На самом деле, я не знаю, является ли версия данных / api / val не-sslОн работает, потому что он продолжает перенаправлять на https, и на странице ничего не отображается.

Если я устанавливаю приложение в качестве корневого веб-сайта для следующего файла хостов, все веб-сайты работают.

app    127.0.0.1 
data   127.0.0.1

http://app/                // works 
http://data/api/values     // works
https://app/               // works 
https://data/api/values    // works 

МойКонечная цель - заставить HTTPS работать над моими приложениями.Меня не интересует наличие нескольких корневых доменов для моего развертывания.

1 Ответ

0 голосов
/ 06 марта 2019

Если вы используете 2.1 или 2.2, вы можете найти здесь, как его настроить.https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-2.2&tabs=visual-studio

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...