Apache-2.2

如何在伺服器出錯之前從 HTTPS 重定向到 HTTP?

  • November 6, 2020

我曾經使用 SSL 證書運營網站,但已停止使用 SSL 證書。問題是該網站的大多數外部連結都使用 https:// 前綴。

我在 .htaccess 文件中嘗試了 https:// 到 http:// 重定向:

RewriteEngine On

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

但是,正如在其他地方指出的那樣,伺服器似乎正在嘗試在啟動重定向之前檢索證書。因此,在完成重定向之前會顯示錯誤。該錯誤是證書已過期的警告,或者如果我刪除了證書籤名請求,那麼 SSL 收到的記錄超出了最大允許長度的錯誤。

有什麼方法可以正確重定向傳入的連結?

http 和 https 的區別在於 https 請求是通過 ssl 加密的連接發送的。在瀏覽器發送http請求之前,瀏覽器和伺服器之間必須建立ssl加密連接。

Https 請求實際上是通過 ssl 加密連接發送的 http 請求。如果伺服器拒絕建立 ssl 加密連接,則瀏覽器將沒有連接來發送請求。瀏覽器和伺服器將無法相互交談。瀏覽器將無法發送它想要訪問的 url,伺服器將無法響應重定向到另一個 url。

所以這是不可能的。如果你想響應 https 連結,那麼你需要一個 ssl 證書。

引用自:https://serverfault.com/questions/429274