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?的主要内容,如果未能解决你的问题,请参考以下文章

centos6.5安装apache2.x并修改默认80端口

怎么样关闭占用80端口的pid为4的进程

apache带8090端口的域名如何隐藏端口

Apache服务器的端口80正在被PID 4(系统)使用并且无法停止[关闭]

Apache服务器的端口80正在被PID 4(系统)使用并且无法停止[关闭]

为啥 apache 强制执行 SSL (https)?如何撤消此操作?