小编who*_*ked的帖子

Apache 允许 HTTP 访问何时应该重定向到 HTTPS

我以为我在将 HTTP 流量重定向到 HTTPS 时遵循了公认的智慧,但是在今天出现 DNS 问题之后,不得不使用 IP 地址而不是 URL,我意识到有些不对劲。

配置文件:

<VirtualHost *:80>
   ServerName 127.0.0.1

   DocumentRoot /var/www/web
</VirtualHost>

<VirtualHost _default_:443>
   ServerName example.com

   DocumentRoot /var/www/web
   SSLEngine On
   SSLCertificateFile      /etc/ssl/local_certs/example.com.pem
   SSLCertificateKeyFile /etc/ssl/local_certs/example.com.pem.key
   Header set Access-Control-Allow-Origin "*"
</VirtualHost>

<VirtualHost *:80>
   ServerName example.com

   Redirect permanent "/" "https://example.com/"
</VirtualHost> 
Run Code Online (Sandbox Code Playgroud)

鉴于上述,我对几点感到困惑:

1) 如果我们现在使用 IP 地址,为什么上述 ServerName 特定虚拟主机中的任何一个都为页面提供服务?如果我当前使用的 IP 地址对应于域名(应该,但今天没有,DNS 问题),这会减少我的困惑。

2) 鉴于我使用的 IP 地址不是 127.0.0.1,为什么我允许访问端口 80?

解释一下 127.0.0.1 主机,这是一个本地 apt 存储库的方便。我知道 ServerName 不是 100% 安全的,但这不是一个紧迫的问题。

当我通过 IP 浏览网站时会发生什么:

首先,我被重定向到同一 IP 地址上的 HTTPS,这正是我所期望的。但是,如果我返回浏览器中的地址栏并从 https 中删除“s”,它会在没有重定向的情况下将我导航到端口 80 上的页面,并且我可以继续浏览不安全的站点。 …

ssl apache-2.2

6
推荐指数
2
解决办法
2109
查看次数

标签 统计

apache-2.2 ×1

ssl ×1