web-dev-qa-db-ja.com

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

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

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

RewriteEngine On

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

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

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

10
user981178

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

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

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

16
sstendal

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

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

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

4