将 HTTP 重定向到 HTTPS 在基本身份验证中的关键作用是啥?

Posted

技术标签:

【中文标题】将 HTTP 重定向到 HTTPS 在基本身份验证中的关键作用是啥?【英文标题】:what is key role of redirection HTTP to HTTPS in basic authentication?将 HTTP 重定向到 HTTPS 在基本身份验证中的关键作用是什么? 【发布时间】:2017-09-10 14:32:29 【问题描述】:

我在 ColdFusion 11 中使用 Windows 托管中的 apache Web 服务器工作我对基本身份验证没有更多的了解,所以我对此有点困惑

    为什么基本身份验证类型将密码存储在 .htpasswd 文件所以 不需要存储数据库? 如何在进入前将请求HTTP重定向到https 密码 提示?

.htaccess 文件代码,它工作正常,首先完全验证,然后在 HTTP 上重定向到 https,但我想在此处输入密码之前将 HTTP 设置为 https 我的 httpd.config 文件虚拟主机代码

<VirtualHost  112.192.12.16>
    DocumentRoot C:/Apache24/htdocs/enovis53
    ServerName test.example.com
    ErrorLog logs/enovis-inc.com-error_log
    CustomLog logs/enovis-inc.com-access_log common
</VirtualHost>

我的 .htaccess 文件代码

AuthName "Example CLMS Production (v5.3.0.0)"

AuthType Basic
AuthUserFile "C:\Apache24\htdocs\enovis53\.htpasswd"
require valid-user

如果有人知道这一点,请指导我

【问题讨论】:

【参考方案1】:
    为什么基本身份验证类型将密码存储在 .htpasswd 文件中,而不需要存储数据库?

这是由AuthBasicProvider确定的

语法:AuthBasicProvider provider-name [provider-name] ... 默认值:AuthBasicProvider 文件

AuthBasicProvider 指令设置使用哪个提供程序来验证此位置的用户。默认文件提供程序由 mod_authn_file 模块实现。

因此,在您的情况下,没有定义提供程序,并且应用了默认值(文件)。如果您想要其他提供商,例如一些数据库,指定dbmldap,...


    如何在输入密码提示之前将请求HTTP重定向到https?

通常,某些指令是无条件应用的,除非受到某种限制。要仅在 HTTPS 处于活动状态时请求密码,您可以尝试将 Auth 指令或至少 Require 包含在 If

<If "%HTTPS == 'on'">
    AuthName "Example CLMS Production (v5.3.0.0)"
    AuthType Basic
    AuthUserFile "C:\Apache24\htdocs\enovis53\.htpasswd"
    require valid-user
</If>

但是现在,当通过http://test.example.com 请求时,所有内容都无需密码即可访问。不要忘记强制https


无关,但请注意来自AuthUserFile的安全警告

安全

确保 AuthUserFile 存储在网络服务器的文档树之外。不要将它放在它保护的目录中。否则,客户端可能能够下载 AuthUserFile。

【讨论】:

谢谢,Olaf 我的知识对基本身份验证非常清楚。但是这段代码不起作用 ....If>给出其他解决方案,所以我会修复它。谢谢提前 @vinny 我错过了'on' 周围的引号,请重试。 好的,这对我有用。并提出更多问题如何获得有关 htacess 文件和规则的广泛知识? @vinny 这就像任何知识一样,随着时间的推移而产生。当然,在这里回答问题,并阅读 https://httpd.apache.org/docs/current/ 的文档。它还有助于在本地 Apache 安装中进行尝试,例如WAMP 或 XAMPP。 感谢您帮助我提高知识并解决我的问题,所有事情都按预期工作,但我的 Internet Explorer 没有将 HTTP 重定向到 HTTPS 知道它是如何工作的吗?

以上是关于将 HTTP 重定向到 HTTPS 在基本身份验证中的关键作用是啥?的主要内容,如果未能解决你的问题,请参考以下文章

登录后 Laravel 基本身份验证重定向到 HTTPS 路由

启用 Azure Active Directory 身份验证时,Azure 移动应用将 Http POST 调用重定向到 GET

使用基本身份验证重定向到另一个网站(在节点中)

请求在身份验证后重定向期间挂起

如何在.NET 中进行基本身份验证后重定向到 Pentaho 的主页?

http | https NodeJS模块将目标网址更改为http,导致重定向[关闭]