【发布时间】:2019-07-17 20:14:06
【问题描述】:
我有几个应用程序。一个是 angular-cli 客户端应用程序。另一个是一个 AspNetCore WebApi 应用程序,它为我的 Angular 客户端提供数据。我已将两者都设置为子应用程序(即使用现有网站的添加应用程序功能托管在 IIS 子文件夹中。
Angular 应用程序的配置是使用几个允许应用程序从子文件夹工作的标志来构建的。
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
接下来,我为我在 hosts 文件中设置的本地域设置了一个自托管 ssl 证书:
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
实际上,我不知道非ssl版本的data/api/values是否有效,因为它一直重定向到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 在我的子应用程序上运行。我对部署多个根域不感兴趣。
【问题讨论】:
标签: angular ssl iis asp.net-core