asp.net - 强制 SSL 连接

标签 asp.net iis ssl


A) 您能否在服务器端仅针对每个 Web 应用程序强制执行 SSL 连接(通过选择“需要安全通道”选项),或者您是否也可以针对每个虚拟目录或什至仅针对每个网页强制执行 SSL 连接?


B) 强制 SSL 连接究竟是如何工作的?如果用户指定 http 而不是 https 协议(protocol)(在请求的 URL 中),请求将自动被 IIS 拒绝?


谢谢

最佳答案

如前所述,1)SSL可以设置在服务端、端或虚拟目录。

2) 如果使用“需要安全通道”设置配置服务器/站点/vdir,则服务器的响应将是“403.4 禁止访问:查看此资源需要 SSL”。错误或“403.5 禁止:查看此资源需要 SSL 128。”。

您实际上可以自定义 403.4 或 403.5 错误以重定向回 HTTPS。在您的站点下创建一个 VDIR 无 SSL 要求(**这很重要)- 我使用“CustomError”。在此目录中创建一个名为 403_4_Error.asp 的 ASP 文件,其中包含以下内容:

<%@ LANGUAGE="VBScript" %> 
<%
if Request.ServerVariables("HTTPS") <> "on" then
    sServer = Request.ServerVariables("SERVER_NAME")
    sScript = Request.ServerVariables("SCRIPT_NAME")
    sQuery  = Request.ServerVariables("QUERY_STRING")
    Response.Write("https://" & sServer & sScript & "?" & sQuery)
end if
%>

为 403.4/403.5 编辑服务器/站点/vdir 的自定义错误属性,并将 MessageType 设置为 URL,将 URL 设置为“/CustomError/403_4_Error.asp”。

请注意,这里使用了 ASP,您可以轻松使用 ASP.net 或任何其他脚本语言。

关于asp.net - 强制 SSL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/815566/

相关文章:

css - modalpopupextender 有一个 element.style

asp.net - 将 SMTP 存储在 Web.Config 文件之外

带有自签名无效证书的 http2

php - 通过 .htaccess 的 SSL 强制导致 wordpress 上的重定向循环

android - java.security.cert.CertPathValidatorException : Trust anchor for certification path not found in React-Native

asp.net - 如何将查询字符串添加到 facebook 登录按钮的 redirect_uri?

asp.net - Web 部署和文件夹权限

asp.net-mvc - 托管多个 ASP.NET Core 应用程序

c# - 在ASP.NET MVC 4应用程序中检查SSL协议(protocol),密码和其他属性

php - 上传时无法创建临时文件