通过 HTTPS 提供所有内容,无论 Web 服务器设置如何

通过 HTTPS 提供所有内容,无论 Web 服务器设置如何

我在 Mac 的 80 端口上运行了一个服务器。

我还想在端口 443 上提供与端口 80 上提供的相同的内容。

我想知道是否有命令行方式或易于使用的工具,可以让我使用任何非 SSL 端口,对其进行加密,并在 SSL 加密端口上提供服务,无论哪个服务器在端口 80 上提供内容

编辑:我无法控制在端口 80 上提供内容的服务器配置。但我想看到在端口 443 上提供相同的内容。我该怎么做?

我怀疑这可以通过 SSH(本地端口转发)以某种方式完成,但我找不到任何似乎可行的方法。我愿意使用任何开源工具来做到这一点……Apache、ssh、iptables……只要能用就行!

答案1

您可以在服务器前面放置一些将 SSL 转换为 TCP 的东西,例如 stunnel 或类似的软件。

答案2

这是在服务器端处理的,而不是通过端口转发。您只需启用 SSL,然后您就可以通过端口 443 上的 HTTPS 获取内容。

对于 Apache 的操作说明:

http://httpd.apache.org/docs/current/ssl/ssl_howto.html

答案3

这也可以使用 Apache 和 mod proxy 来完成....我设法使用 XAMPP 和 XAMPP 附带的默认 httpd.conf 来完成此操作,方法是在其“etc/httpd.conf”文件底部包含以下内容

ServerName localhost

ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid

<Proxy balancer://mycluster>
   BalancerMember http://localhost route=myroute
</Proxy>

SSLHonorCipherOrder On
SSLProtocol -ALL +SSLv3 +TLSv1
SSLCipherSuite RC4-SHA:HIGH:!ADH

注释掉该文件的最后两行,

  # Include etc/extra/httpd-xampp.conf
  # Include "/Applications/XAMPP/xamppfiles/apache2/conf/httpd.conf"

将 Apache 的默认端口从 80 更改为其他端口(例如 800)

Listen 800

我确信可以用比这更少的配置来完成,但这对我来说是有效的;-)

注意:(可选)如果您想让所有 http 请求都重写为 https(并且您没有执行上面的 Listen 800 行),您可以使用 mod rewrite 执行以下操作:

  # Rewrite all http requests to https
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

相关内容