我尝试使用 Apache 进行基本身份验证
目录
你好,我叫肯。这是我第一次写博客,所以我很紧张。也许,,,,,。我喜欢咖啡,工作时几乎每天都会煮咖啡,并提供给其他Beyond会员!以及每一天推我,推荐。
这次我用的是什么
虚拟机版本 6.1
流浪者版本2.2.19
流浪盒:centos/7
阿帕奇版本 2.4.6
什么是基本身份验证?
首先我们看一下维基百科的解释。
基本认证是HTTP(HTTP认证)定义的认证方式之一也称为基本身份验证
使用基本身份验证时,用户名和密码对用冒号“:”连接,以 Base64 编码并发送。因此,它的缺点是容易被窃听和篡改,但由于几乎所有的网络服务器和浏览器都支持它,因此被广泛使用。
为了防止窃听和篡改,后来设计了一种称为摘要式身份验证的方法,其中使用 MD5 对用户名和密码进行哈希处理并发送。
引用: https://ja.wikipedia.org/wiki/Basic%E8%AA%8D%E8%A8%BC (截至 2022 年 8 月 12 日)
啊? ? ?你在说什么? ?维基百科! !
简而言之,它是关于限制对网站的访问,您只需几行即可轻松完成。登录网站之前,您必须输入用户名和密码,否则您将无法登录。
让我们使用 Apache 设置虚拟主机并尝试基本身份验证!
这次,我们的目标是将基本身份验证应用于 vagrant 中安装的 VirtualHost 上设置的公共屏幕。
更改 Vagrantfile 设置并尝试登录 vagrant
编辑 vagrantfile 以在本地环境中启用互联网连接。
Vagrantfile 的示例具有以下设置。
您需要连接的是
config.vm.network“私有网络”,IP:“192.168.43.20”
就变成了。
# -*- mode: ruby -*- # vi: set ft=ruby : # 所有 Vagrant 配置均在下面完成。 Vagrant.configure 中的“2”配置配置版本(我们支持旧样式以实现向后兼容。 ). 除非您知道 # Vagrant.configure("2") 做什么 |config| # 您可以在 https:// 中搜索 # 个框。 vagrantcloud. config.vm.box = "centos/7" # 创建一个转发端口映射,允许从主机上的端口访问计算机内的特定端口。 localhost: 8080" 将访问来宾计算机上的端口 80。 # 注意:这将启用对开放端口的公共访问 config.vm.network "forwarded_port", guest: 80, host: 8080 # 创建一个专用网络,允许主机-仅访问使用特定 IP 的机器 # config.vm.network "private_network", ip: "192.168.43.20" end。
完成编辑后,vagrant up。
流浪向上
vagrant up 完成后,使用 vagrant ssh 连接,
流浪者 ssh
连接现已完成。
验证 apache 安装和显示
首先,我们从安装 apache 开始。
须藤 yum 安装 httpd
当显示complete时表示安装完成。
systemctl 状态 httpd
此时,它还没有启动,所以会显示为inactive(死机)。
● httpd.service - Apache HTTP 服务器 已加载:已加载(/usr/lib/systemd/system/httpd.service;已禁用;供应商预设:已禁用) 活动:不活动(死) 文档:man:httpd(8) man:apachectl (8)
启动阿帕奇。
sudo systemctl 启动 httpd
再次检查apache状态,确认已经启动。
systemctl status httpd ● httpd.service - Apache HTTP 服务器 已加载:已加载(/usr/lib/systemd/system/httpd.service;已禁用;供应商预设:已禁用) 活动:自 2022 年 8 月 12 日星期五起活动(正在运行) :55:17 UTC; 4 秒前 文档:man:httpd(8) man:apachectl(8) 主要 PID:2443 (httpd) 状态:“正在处理请求...” CGroup:/system.slice/httpd.service tq2443 / usr/sbin/httpd -DFOREGROUND tq2444 /usr/sbin/httpd -DFOREGROUND tq2445 /usr/sbin/httpd -DFOREGROUND tq2446 /usr/sbin/httpd -DFOREGROUND tq2447 /usr/sbin/httpd -DFOREGROUND mq2448 /usr/sbin/httpd -DF前景
如果可以确认显示处于活动状态(正在运行),则 apache 正在运行。
此外,我们还将确认apache测试页面是否显示。
如果在浏览器中输入 http://localhost:8080 并显示 apache 测试屏幕,则表示没问题。
让我们设置一个虚拟主机
首先,为 Virtualhost 创建一个文档根目录。
mkdir -p /var/www/vhosts/example.com/public_html
创建后,移至public_html。
cd /var/www/vhosts/example.com/public_html
创建一个要在public_html下显示的文件
vi 索引.html
写下您喜欢的内容。由于这是对 Virtualhost 的测试,因此措辞应该如下。
这是对基础文档的测试
写完后,使用 :wq 保存并关闭页面。
接下来,创建一个 Virtualhost conf 文件,就像我们这次将创建的文件一样。
为了读取conf文件,需要将其放在/etc/httpd/conf.d下,因此将其移动到conf下的文件中。
cd /etc/httpd/conf.d/
一旦您可以移动到conf目录,就为虚拟主机创建一个conf。
vi 虚拟主机配置文件
在vhost.conf中写入ServerName和DocumentRoot。
<VirtualHost *:80>服务器名称 example.com DocumentRoot /var/www/vhosts/example.com/public_html</VirtualHost>
重启apache使设置生效。
systemctl 重新启动 httpd
仅此一项不会反映更改,因此您需要在 Windows 上进行本地配置。下一步是编辑主机文件。主机文件的位置位于以下目录中。
C:\Windows\System32\drivers\etc\hosts
将其输入到资源管理器中,使用管理员权限打开记事本,并将以下内容添加到主机文件中。
192.168.43.20 example.com
添加此并保存。
之后,如果设置正确,当您在浏览器中输入http://example.com时,将显示index.html中列出的站点。
如果您看到类似的内容,则说明您已成功配置 VirtualHost。
接下来,为此 VirtualHost 配置基本身份验证。
让我们设置基本身份验证
本次进行基本认证的站点是:
/var/www/vhosts/example.com/public_html
,因此我们将对其进行配置,以便仅上述路径中的站点需要基本身份验证。
sudo htpasswd -c /var/www/vhosts/example.com/.htpasswd 用户名
设置任意用户名和密码。当你输入上面的命令时,会要求你输入密码,所以设置一个密码。系统将要求您两次确认密码,因此请输入两次所需的密码。完成后,运行 cat 命令检查用户和密码是否已设置。
猫 /var/www/vhosts/example.com/.htpasswd
用户名和散列密码显示在输出中,因此我能够确认设置是否正确。
流浪汉:$apr1$5XrvFjtv$45oq4gzLiu708WtVYuOtq0
现在我们已经更改了权限设置,我们将配置这些设置以便执行基本身份验证。这次,我们将使用 .htaccess 来执行基本身份验证。
在文档根目录下创建一个 .htaccess 文件。
sudo vi /var/www/vhosts/example.com/public_html/.htaccess
然后,将需要基本身份验证的设置放在 .htaccess 中。
AuthType Basic AuthName 基本身份验证测试 AuthUserFile /var/www/vhosts/example.com/.htpasswd 需要有效用户
写完后,按 :wq 保存。
由于 apache 默认情况下不允许 .htaccess 设置,因此我们将其配置为允许它。
具体来说,我们将向 vhost.conf 添加设置,以便我们可以为 /var/www/vhosts/example.com/public_html 配置基本身份验证。需要补充的内容如下。
<VirtualHost *:80>服务器名称 example.com DocumentRoot /var/www/vhosts/example.com/public_html<Directory /var/www/vhosts/example.com/public_html>允许覆盖 AuthConfig</Directory></VirtualHost>
首先,为了决定反映设置的目录,<Directory /var/www/vhosts/example.com/public_html></Directory>我将描述它。通过将AllowOverride设置为AuthConfig,可以反映基本身份验证等设置。进行此更改后,请重新启动计算机以使之前的设置生效。
sudo systemctl 重新启动 httpd
现在应该会反映设置,因此再次搜索 http://example.com 并检查显示。
显示基本认证图像! ! !可以肯定的是,我输入了我设置的用户名和密码,index.html 中的图像正确显示了! ! !
概括
设置基本身份验证时,您可能会感到紧张,因为即使您已经设置了它,它也不会显示,但我了解到不要担心并仅通过谷歌搜索的重要性。到目前为止,我主要在研究apache,但下次我想在我的博客上写一下如何使用nginx进行基本身份验证。
感谢您的阅读,我刚刚预览了下一篇博客的主题。我希望你有一个愉快的夏天。