将 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 在基本身份验证中的关键作用是啥?的主要内容,如果未能解决你的问题,请参考以下文章