在 Caddy 中将部分 HTTPS 流量重定向到 HTTP

在 Caddy 中将部分 HTTPS 流量重定向到 HTTP

我使用 Caddy 作为同一服务器上许多网站的代理。我的一些网站尚未准备好使用 HTTPS。我可以通过 HTTP 顺利地路由它们,但如果我使用 HTTPS 访问这些网站,我就会得到一个丑陋的...

No such site at :443

...错误。我该如何使用 Caddy 重定向到 HTTP?

这有效但给出了错误:

siteCanHandleSSL.com {
  proxy / 123.123.123.123:80 {
    transparent
  }
  tls [email protected] {
    dns route53
    max_certs 200
  }
}

http://siteCantHandleSLL.com {
  proxy / 123.456.654.321:80 {
    transparent
  }
  tls off
}

这给了我一个不同的错误:

siteCanHandleSSL.com {
  proxy / 123.123.123.123:80 {
    transparent
  }
  tls [email protected] {
    dns route53
    max_certs 200
  }
}

https://siteCantHandleSLL.com {
  redir http://{host}{uri}
  tls off
}

http://siteCantHandleSLL.com {
  proxy / 123.456.654.321:80 {
    transparent
  }
  tls off
}

❯ 卷曲https://surrain.com curl:(60)SSL 证书问题:无效的证书链更多详细信息请参见:https://curl.haxx.se/docs/sslcerts.html

curl 默认使用证书颁发机构 (CA) 公钥 (CA 证书)“捆绑包”执行 SSL 证书验证。如果默认捆绑包文件不够用,您可以使用 --cacert 选项指定备用文件。如果此 HTTPS 服务器使用捆绑包中代表的 CA 签名的证书,证书验证可能由于证书问题而失败(证书可能已过期,或者名称可能与 URL 中的域名不匹配)。如果您想关闭 curl 的证书验证,请使用 -k(或 --insecure)选项。

~❯ curl -khttps://surrain.com 没有找到此网站:443%

答案1

为了与域建立有效的 SSL 连接,服务器必须拥有该域的有效证书。否则您将收到有关证书无效的错误消息。

如果您想从 HTTPS 重定向到 HTTP,您需要一个有效的证书。这是因为 SSL 位于 HTTP 之下,并且 HTTP 重定向响应是在设置有效的 SSL 连接后发送的。

您能做的最好的事情就是在没有服务器监听 SSL 端口的服务器上托管仅 HTTP 域。这意味着您需要为 HTTPS/HTTP 和纯 HTTP 网站提供单独的服务器。

相关内容