我使用Caddy作为同一台服务器上许多站点的代理。 我的一些网站还没有准备好HTTPS。 我可以路由他们的HTTP很好,但如果我访问这些网站的HTTPS,我得到一个丑陋的…
No such site at :443
…错误。 我怎样才能使用Caddyredirect到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 }
❯curl https://surrain.com curl:(60)SSL证书问题:证书链无效更多细节在这里: https : //curl.haxx.se/docs/sslcerts.html
curl默认使用证书颁发机构(CA)公钥(CA证书)的“包”来执行SSL证书validation。 如果默认的软件包文件不够用,可以使用–cacert选项指定一个备用文件。 如果此HTTPS服务器使用包中表示的由CA签名的证书,证书validation可能由于证书问题(可能已过期,或名称可能与URL中的域名不匹配)而失败。 如果您想closures卷发的证书validation,请使用-k(或–insecure)选项。
〜❯curl -k https://surrain.com没有这样的网站:443%
为了build立到域的有效SSL连接,服务器必须具有该域的有效证书。 否则,您将收到有关无效证书的错误消息。
如果你想从HTTPSredirect到HTTP,你需要一个有效的证书。 这是因为SSL低于HTTP,并且在build立有效的SSL连接之后发送HTTPredirect响应。
您可以做的最好的做法是在没有监听SSL端口的服务器的服务器上仅托pipeHTTP域。 这意味着您需要为HTTPS / HTTP和普通HTTP站点使用单独的服务器。