需要帮助 ASP.net 切换到 HTTPS

Need help switching ASP.net to HTTPS

本文关键字:HTTPS net 帮助 ASP      更新时间:2023-09-26

我一直在为此苦苦挣扎,希望得到一些帮助!我收到有关我的 ASP.net CDN 的混合 SSL 错误,我想知道是否有人知道如何解决它。任何帮助将不胜感激。

他们在这里:

www.billslasher.com/:1 混合内容:"我的网站(billslasher .com/submit-bill"中的页面是通过HTTPS加载的,但请求了不安全的资源"http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js?ver=4.1"。此请求已被阻止;内容必须通过 HTTPS 提供。

www.billslasher.com/:1 混合内容:"我的网站"中的页面是通过 HTTPS 加载的,但请求了不安全的脚本"http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js?ver=4.1"。此请求已被阻止;内容必须通过 HTTPS 提供。

您可能已在视图中包含绝对路径。

例如,对于第一个在您的<head>元素中具有以下内容:

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js?ver=4.1" ></script>

这显然将通过纯 HTTP 加载。

对于可以使用HTTP或HTTPS访问的页面,一个选项是协议相对URL:

<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js?ver=4.1" ></script>

并且包含页面的协议将用于获取资源。

对于动态生成的链接,您可以生成此类协议相对链接,也可以根据请求的协议添加协议。

有两个并发症需要考虑:

  • 具有不同 URL 的外部资源(例如,不同的域)用于 HTTP 或 HTTPS 请求。这需要代码。
  • 在检测请求是否为 HTTPS 时,请记住负载均衡器(或服务器前面的其他代理)可能会卸载 TLS 编码,因此即使客户端请求是 HTTPS,与服务器的连接也是 HTTP。检测这一点取决于卸载机制。可能有一个请求标头(通用)或不同的端口号(我最近看到这个:端口 81 上的 HTTP 实际上是一个 HTTPS 请求)。

您需要从HTTPS CDN加载资源。这里的浏览器抱怨您的主站点通过HTTPS加载,但您使用不是URL引用的资源。或者也许不要使用 CDN 并在本地加载所有内容。

使用协议相对URL方法。将 URL 更改为仅使用两个正斜杠,以便您的 CDN 调用将是:

/

/ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js?ver=4.1

我建议使用 https://代理服务器来发送您的所有请求。如果您使用的是需要内容交付网络资源的 Web 窗体控件 asp.net 如 AJAX 控件,请查看脚本管理器控件属性 enablecdn,https://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.enablecdn%28v=vs.110%29.aspx