CORS 无法在没有 SSL 证书的 IIS 服务器中工作

Posted

技术标签:

【中文标题】CORS 无法在没有 SSL 证书的 IIS 服务器中工作【英文标题】:CORS not working in a IIS Server without SSL Certificate 【发布时间】:2020-03-09 22:30:43 【问题描述】:

我有一个 .net 核心 API 应用程序,但如果 CORS 部署在没有 SSL 认证的 IIS 服务器中,则 CORS 不起作用

除了在我们的服务器中注册 SSL 证书之外,还有其他解决方案吗?

注意:我们已经在后面的代码中指定了允许所有来源/方法/凭据/标头

【问题讨论】:

不言而喻,但如果你不保护与 https 的通信,这不就像带着花园软管出现在房子火灾中吗? 【参考方案1】:

这和我的问题一样。

我已经在我的 Startup.cs 中添加了这些,但它不起作用。

        app.UseCors(builder => builder.WithOrigins("http://localhost:4200")
                .AllowAnyHeader()
                .AllowAnyMethod()
                .AllowCredentials());

  app.UseCors(builder => builder.AllowAnyOrigin()
                .AllowAnyHeader()
                .AllowAnyMethod()
                .AllowCredentials());

我什至添加了一个 OptionsMiddleware 但似乎不起作用。

【讨论】:

当我们部署在带有 ssl 证书的 IIS 中时,它也可以工作,但没有 ssl 证书,它就不起作用【参考方案2】:

我遇到了同样的问题,但它通过以下方式解决了:-

<system.webServer>    
      <httpProtocol>
         <customHeaders>
             <add name="Access-Control-Allow-Origin" value="*" />
         </customHeaders>
       </httpProtocol>
      </system.webServer>

【讨论】:

以上是关于CORS 无法在没有 SSL 证书的 IIS 服务器中工作的主要内容,如果未能解决你的问题,请参考以下文章

网站绿锁里面显示的ssl证书 在iis服务器证书列表里面找不到,请问这个证书是在哪儿绑定的

2008申请SSL证书,IIS7怎么申请SSL安全证书

IIS服务器SSL证书安装

如何将IIS被删除的SSL服务器证书私钥重新恢复回来

IIS服务器SSL证书安装 (pfx文件不能直接运行时)

无法使用来自 IIS 的权限为 SSL/TLS 建立安全通道