我有一个网站托管在 Apache 上(在 Windows 上),我想保护它,这样任何人进入都需要输入密码。这并不是一个安全堡垒,我知道这很糟糕,但总比没有好,我不想尝试任何能使它更安全的替代方案(它们真的不值得这样做)。
我希望弹出典型的 HTTP 身份验证对话框,要求访问者输入密码。每个人都有相同的密码。事实上,如果我可以让用户名为空,那就太理想了。如果不行,每个人都会有相同的用户名。
你能告诉我怎么做吗?我找到的所有教程都是针对更高级的用例,其中使用了机器的实际用户/密码。
是否可以将其设置为文件中的硬编码密码?还是我需要创建一个 Windows 用户?
答案1
谷歌搜索:
Apache htpasswd 基本身份验证
脚步:
创建 htpasswd 文件。此文件可以任意命名,并且应该是在你的 DocumentRoot 之外。 使用密码实用程序
touch /etc/http.passwd htpasswd /etc/http.passwd jsilverman New password: Re-type new password: Adding password for user jsilverman
将以下内容添加到您的 Apache 配置中,可以在 (a) 主 apache2.conf(更集中,更易于管理)或 (b) 受保护目录中的 .htaccess 文件(更简单,更直接,不需要重启 apache)中添加
AuthType Basic AuthName "Password Protected Area" AuthUserFile /etc/http.passwd Require user jsilverman
如果您做了(a),请重新加载 Apache,否则您就完成了。
如果发生这种情况:htpasswd:未找到命令
您可能需要安装 apache2-utils 或类似的软件包。
但是,我并不认为你搜索得非常仔细。在 WWW 上,这个过程的例子有成千上万个,可以追溯到 90 年代中期。但是我心情很烦,所以你得到的是一个真正的答案,而不是一个自作聪明的 RTFM。但真的,RTFM——Apache Web 服务器是记录最详尽的开源软件之一,就是这样。
更新:哇,你真的搜索得不太好。我只是在 Google 上搜索了“密码保护网站”,结果基本上是这个答案。
答案2
是的,您可以通过.htaccess
文件或您的来执行此操作httpd.conf
。
这是一个构建用户名/密码文件的生成器:
http://tools.dynamicdrive.com/密码/
以下是 Apache 相关文档:http://httpd.apache.org/docs/2.0/howto/auth.html