[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

我尝试使用 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进行基本身份验证。

感谢您的阅读,我刚刚预览了下一篇博客的主题。我希望你有一个愉快的夏天。

 

 

如果您觉得这篇文章有帮助,请点赞!
9
加载中...
9 票,平均:1.00 / 19
4,418
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

写这篇文章的人

关于作者

2022 年应届毕业生加入 Beyond。目前
在系统解决方案部门
。研究生毕业之前我一直在学习语言学,并接受了成为基础设施工程师的挑战。我
建立了一个名为 Beyond Cafe Club 的内部俱乐部,并且充满热情关于每天煮咖啡和茶。ing