在我的开发服务器上,登录仅需使用证书(443 上的 HTTPS),而 80 上的 HTTP 重定向到 HTTPS。如果没有重定向,访问将不受限制,任何人都可以访问任何地方,因为我无法在 HTTP 上执行“require”,而不能在 HTTPS 上执行,因为“require”仅适用于 LOCATION/FILE,而不适用于 VHOST。
是否可以信任重定向以始终拒绝对 HTTP 的访问?它足够安全吗?
相关设置:
在位置 /var/www/html/:
Require All granted
Options Indexes FollowSymLinks
在 vhost [服务器 ip]:80
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
在 vhost [服务器 ip]:433
SSLVerifyClient require
答案1
是的。如果每个请求都被重定向,那就没有其他的了。但是,你的 把事情搞得太复杂了RewriteCond %{HTTPS} off
。HTTPVirtualHost
只能有一个简单的mod_aliasRedirect
适用于一切。当它甚至没有任何东西时,DocumentRoot
也更容易意识到它不会提供任何内容。
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>