centos8设置httpd只允许https访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos8设置httpd只允许https访问相关的知识,希望对你有一定的参考价值。

在 CentOS 8 中,可以通过编辑 Apache 的配置文件来限制只允许 HTTPS 访问。以下是具体操作步骤:

1. 打开终端,并使用 root 权限登录系统。

2. 进入 Apache 的配置文件目录,一般位于 /etc/httpd/conf 目录下。使用以下命令进入该目录:

```
cd /etc/httpd/conf
```

3. 编辑 httpd.conf 配置文件,使用以下命令打开该文件:

```
vi httpd.conf
```

4. 在配置文件中找到以下代码段:

```
<VirtualHost *:80>
# 此处省略其他配置信息
</VirtualHost>
```

复制该代码段,在同一文件中再添加以下代码段:

```
<VirtualHost *:443>
# SSL 配置等信息
# 此处省略其他配置信息
</VirtualHost>
```

注意,要将 *:80 改为 *:443,这样就可以只允许 HTTPS 访问了。

5. 保存并退出配置文件。

6. 重启 Apache 服务,使用以下命令重启 Apache:

```
systemctl restart httpd
```

完成上述操作后,Apache 只会响应 HTTPS 请求,不再响应 HTTP 请求。需要注意的是,使用 HTTPS 访问网站时需要在浏览器中输入 https:// 开头的链接。
参考技术A 要设置 CentOS 8 上的 Apache httpd 只允许 HTTPS 访问,您可以按照以下步骤进行设置:

确保 Apache httpd 已经安装并启动。如果尚未安装,请执行以下命令安装:
plaintext
Copy code
sudo dnf install httpd

编辑 Apache 的配置文件 /etc/httpd/conf/httpd.conf,找到以下两行并取消注释:
plaintext
Copy code
LoadModule ssl_module modules/mod_ssl.so
Include conf.modules.d/*.conf

这将加载 Apache 的 SSL 模块,并包含 SSL 配置文件。

编辑 SSL 配置文件 /etc/httpd/conf.d/ssl.conf,找到以下行并将其注释掉:
plaintext
Copy code
Listen 443 https

这将禁用 HTTP 访问端口 443,只允许 HTTPS 访问。

执行以下命令重启 Apache 服务:
plaintext
Copy code
sudo systemctl restart httpd

现在,您已经成功地设置了 CentOS 8 上的 Apache httpd 只允许 HTTPS 访问。请注意,如果您的网站上存在 HTTP 链接,这些链接将不再有效,因为您禁用了 HTTP 访问端口 443。

如何只允许从 Apache Httpd 2.4 上的特定主机访问?

【中文标题】如何只允许从 Apache Httpd 2.4 上的特定主机访问?【英文标题】:How to allow access only from a specific host on Apache Httpd 2.4? 【发布时间】:2019-05-06 20:20:01 【问题描述】:

我正在使用Apache Httpd 2.4 作为网络服务器,但我无法仅允许从特定主机访问我的网络服务器上的 URL 路径“/x”。

httpd.conf:

<Location "/x">
    Require host myhost.com
</Location> 

基本上它会忽略“需要主机 myhost.com”并限制来自所有主机的访问。

authz_hostauthz_core 模块已启用。

我错过了什么吗?

谢谢

【问题讨论】:

这应该可以,我刚刚测试过。您是否可能有其他配置(例如 &lt;Directory /var/www/x/&gt; 覆盖 Location 指令? @digijay 我还在 上方配置了 【参考方案1】:

要使Require host 正常工作,您必须确保您的域的反向 dns 查找正常工作。这是由 DNS 中的PTR(指针)记录完成的。您可以使用dig 命令检查它,如下所示:

$ dig +short www.google.de
172.217.22.67
$ dig +noall +answer -x 172.217.22.67
67.22.217.172.in-addr.arpa. 85372 IN    PTR fra15s17-in-f3.1e100.net.
67.22.217.172.in-addr.arpa. 85372 IN    PTR fra15s17-in-f67.1e100.net.

注意PTR记录的IP取反:172.217.22.67 67.22.217.172

所以 www.google.com 有一个正确的反向 dns 条目。

如果您的域没有设置反向 dns 指针,您会在 apache 错误日志中找到这样的条目(除非您已将其配置为不同的位置,否则它应该是 /var/log/apache2/error.log):

[Wed Dec 05 16:18:23.854771 2018] [authz_core:error] [pid 4711] [client W.X.Y.Z:54050] AH01630: client denied by server configuration: /var/www/example.com/x

作为一种解决方法,您可以使用 Require ip:

<Location "/x">
    Require ip W.X.Y.Z
</Location> 

根据 error.log 中的条目,W.X.Y.Z 是您的 IP。

希望这会有所帮助,如果可以的话,如果您能接受答案,我会很高兴。

【讨论】:

您好 Netanel,您能否再检查一下您是否有任何其他指令影响Location /x?这可以是别名或目录指令或类似的东西。另外,你能检查一下Require ip 是否有效吗?

以上是关于centos8设置httpd只允许https访问的主要内容,如果未能解决你的问题,请参考以下文章

设置防火墙

Centos8搭建本地Web服务器

如何只允许从 Apache Httpd 2.4 上的特定主机访问?

是否可以只允许 Apache HTTPd 静态资源访问在 Tomcat 中经过身份验证的客户端?

linux iptables 要设置 某个目录 只允许指定IP 访问怎么弄呢。

panabit怎么设置只允许访问指定的https网站?