我有几个申请。一种是angular-cli客户应用程序。另一个是AspNetCore WebApi应用程序,它将数据提供给我的角度客户端。我已经将这两个都设置为子应用程序(即使用现有网站的添加应用程序功能托管在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
实际上,我不知道data / api / values的非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在我的子应用程序上运行。我对部署有多个根域不感兴趣。
答案 0 :(得分:0)
如果您使用的是2.1或2.2,则可以在此处找到如何进行设置。 https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-2.2&tabs=visual-studio