我在 Mac 的 80 端口上运行了一个服务器。
我还想在端口 443 上提供与端口 80 上提供的相同的内容。
我想知道是否有命令行方式或易于使用的工具,可以让我使用任何非 SSL 端口,对其进行加密,并在 SSL 加密端口上提供服务,无论哪个服务器在端口 80 上提供内容。
编辑:我无法控制在端口 80 上提供内容的服务器配置。但我想看到在端口 443 上提供相同的内容。我该怎么做?
我怀疑这可以通过 SSH(本地端口转发)以某种方式完成,但我找不到任何似乎可行的方法。我愿意使用任何开源工具来做到这一点……Apache、ssh、iptables……只要能用就行!
答案1
您可以在服务器前面放置一些将 SSL 转换为 TCP 的东西,例如 stunnel 或类似的软件。
答案2
这是在服务器端处理的,而不是通过端口转发。您只需启用 SSL,然后您就可以通过端口 443 上的 HTTPS 获取内容。
对于 Apache 的操作说明:
答案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}