代码之家  ›  专栏  ›  技术社区  ›  jwize

如何将ssl与子文件夹中的asp net核心应用程序一起使用

  •  0
  • jwize  · 技术社区  · 6 年前

    我有几个申请。一个是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
    

    实际上,我不知道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 回复  |  直到 6 年前
        1
  •  0
  •   Adawg    6 年前