服务器错误之前如何从HTTPSredirect到HTTP?

我曾经使用SSL证书操作网站,但是已经停止使用SSL证书。 问题是,网站的大部分外部链接都使用https://前缀。

我已经在.htaccess文件中尝试了https://到http://redirect:

RewriteEngine On RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} 

但是正如其他地方已经指出的那样,服务器在激活redirect之前试图获取证书。 因此,在redirect完成之前显示错误。 错误是警告证书已过期,或者如果我删除了证书签名请求,那么SSL收到的logging超过了允许的最大长度的错误。

有什么办法可以让传入的链接redirect吗?

http和https之间的区别在于https请求是通过sslencryption的连接发送的。 在浏览器发送http请求之前,必须在浏览器和服务器之间build立sslencryption的连接。

Https请求实际上是通过SSLencryption连接发送的http请求。 如果服务器拒绝build立sslencryption连接,则浏览器将无法连接发送请求。 浏览器和服务器将无法相互交谈。 浏览器将无法发送它想要访问的url,服务器将无法响应redirect到另一个url。

所以这是不可能的。 如果你想回应https链接,那么你需要一个ssl证书。

不,如果没有真正的证书可以从httpsredirect到http,这将是一个重大的安全漏洞。

考虑一个犯罪莫名其妙地能够使银行安全的服务器redirect到一个不安全的连接,而不需要一个真正的HTTPS证书的网站,这将允许犯罪分子劫持连接,而用户不知道。

我可以看到唯一的解决scheme是获得一个便宜的证书,然后从HTTPS站点(用户无法访问没有有效的证书)正常的redirect到这些外部链接的常规站点。

你应该在你的.htaccess中创build

 ErrorDocument 500 http://anotherserer.com/errorPage.php