Apache2 - 如何完全关闭端口 80 并强制浏览器自动使用 HTTPS?
Posted
技术标签:
【中文标题】Apache2 - 如何完全关闭端口 80 并强制浏览器自动使用 HTTPS?【英文标题】:Apache2 - how to close port 80 entirely and force the browser to automatically use HTTPS? 【发布时间】:2014-07-13 08:05:38 【问题描述】:我正在运行最新的 Debian Wheezy,并且正在配置一个运行 phpMyAdmin 的 Apache2 服务器,仅此而已。我通过以下方式安装了自签名证书:
- * 删除 /etc/apache2/sites-available 中的 default 文件
- * 修改 default-ssl 文件以添加证书和证书密钥的路径
- * 将 default-ssl 重命名为 default
- * 服务 apache2 重启
证书确实有效,但与我预期的不太一样。我的目标是完全关闭 Apache 的 80 端口,并让浏览器自动对任何网站使用 HTTPS,包括 phpMyAdmin。 第一个问题是我必须在 URL 中手动添加 https:// 才能从 /var/www 打开默认站点 - 我希望它会重定向自动到 HTTPS。第二个是 phpMyAdmin 不能很好地使用 SSL。当我在浏览器中打开 http://10.0.0.8/phpmyadmin
时,网站在没有 SSL 证书的情况下打开,在我尝试登录后,它会将我重定向到 http://10.0.0.8/phpmyadmin/index.php
,这导致浏览器显示“连接被拒绝”。改为使用 https:// 打开网站后,一切正常。
我现在所做的是我在 ports.conf 中注释了两个第一行以关闭端口 80 的侦听。我还尝试通过在 config 中添加 $cfg['ForceSSL'] = true;
来强制 phpMyAdmin 使用 SSL .inc.php 并制作一个 .htaccess 文件以使用Redirect permanent /phpmyadmin https://10.0.0.8/phpmyadmin
将用户重定向到 SSL 站点
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:我也遇到了同样的问题。我将以下行添加到默认端口 80 服务器的默认 apache2 conf 文件中。这是 /etc/apache2/sites-available/default 的 conf 文件
Redirect permanent /phpMyAdmin https://your-full-domain-name-or-ip/phpMyAdmin
记得用
重启你的apache2服务器/etc/init.d/apache2 restart
任何试图访问您的 phpMyAdmin 的人都会被重定向到 SSL。
【讨论】:
以上是关于Apache2 - 如何完全关闭端口 80 并强制浏览器自动使用 HTTPS?的主要内容,如果未能解决你的问题,请参考以下文章
Apache服务器的端口80正在被PID 4(系统)使用并且无法停止[关闭]