我在ColdFusion 11中使用apache web服务器在windows托管中工作我对基本身份验证没有更多的了解,所以我对此有点混淆
.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
如果有人知道这一点然后指导我我不知道这是正确的事情要求社区所有建议都可以提前感谢
答案 0 :(得分:1)
决定
- 为什么基本身份验证类型会在.htpasswd文件中存储密码,因此不需要存储数据库?
醇>
语法:AuthBasicProvider provider-name [provider-name] ...
默认值:AuthBasicProvider文件
AuthBasicProvider
指令设置用于对此位置的用户进行身份验证的提供程序。默认文件提供程序由mod_authn_file模块实现。
因此,在您的情况下,未定义任何提供程序,并应用默认(文件)。如果您想要其他提供商,例如一些数据库,指定dbm
,ldap
,...
- 如何在输入密码提示之前将请求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存储在Web服务器的文档树之外。不要将它放在它保护的目录中。否则,客户端可能能够下载AuthUserFile。