我使用 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 网站提供单独的服务器。