サーバーエラーの前にHTTPSからHTTPにリダイレクトする方法


10

SSL証明書を使用してWebサイトを運用していたが、SSL証明書の使用を中止した。問題は、Webサイトへのほとんどの外部リンクがhttps://プレフィックスを使用していることです。

.htaccessファイルでhttps://からhttp://へのリダイレクトを試しました:

RewriteEngine On

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

しかし、他の場所で指摘されているように、サーバーはリダイレクトをアクティブにする前に証明書を取得しようとしているようです。したがって、リダイレクトが完了する前にエラーが表示されます。このエラーは、証明書の有効期限が切れているという警告、または証明書署名要求を削除した場合に、SSLが最大許容長を超えるレコードを受信したというエラーのいずれかです。

着信リンクが適切にリダイレクトされるようにする方法はありますか?


1
ご存知のとおり、SSLはHTTPリクエストが発生する前にネゴシエートされます。あなたがこれをあなたが望むように機能させるのに問題があると思いますが、誰かがより良い答えを持っている場合に備えて、ServerFault.comに移行することにします。
Michael

これは難しいかもしれません。インターネットの周りに構築されたリンクを失うこと、そしてさらに悪いことに、訪問者がサイトが危険にさらされている、または姿を消したと考えるのは本当のつまらないことです。

回答:


16

httpとhttpsの違いは、httpsリクエストがssl暗号化接続を介して送信されることです。ブラウザがHTTPリクエストを送信する前に、ブラウザとサーバー間でSSL暗号化接続を確立する必要があります。

Httpsリクエストは、実際にはssl暗号化接続を介して送信されるhttpリクエストです。サーバーがssl暗号化接続の確立を拒否した場合、ブラウザーは要求を送信するための接続を確立できません。ブラウザとサーバーは相互に通信する方法がありません。ブラウザーはアクセスしたいURLを送信できず、サーバーは別のURLへのリダイレクトで応答できません。

したがって、これは不可能です。httpsリンクに応答する場合は、ssl証明書が必要です。


4

いいえ、実際の証明書なしでhttpsからhttpにリダイレクトできた場合、それは重大なセキュリティ上の欠陥になります。

犯罪者が、サイトの実際のhttps証明書を必要とせずに、銀行の安全なサーバーを安全でない接続にリダイレクトできるようにすると、犯罪者はユーザーに気付かれずに接続を乗っ取ることができます。

私が見ることができる唯一の解決策は、安価な証明書を取得してから、HTTPSサイト(ユーザーが有効な証明書がないとアクセスできない)から通常のサイトにそれらの外部リンクに通常のリダイレクトを行うことです。


そうです、この方がいいです。残念ながら、サイトの所有者として承認されたオーバーライドを設定する方法はありません。

-2

.htaccessに作成する必要があります

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

提案をありがとう。これが.htaccessにある場合でも、この特定のエラーの500エラーに対して入力したページは使用されていません。初期エラーのため、おそらく.htaccessの何もアクティブ化されていないようです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.