서버 오류 전에 HTTPS에서 HTTP로 리디렉션하는 방법은 무엇입니까? 접두사를 사용한다는 것입니다. .htaccess

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에서 http로 리디렉션 할 수 있다면 주요 보안 결함이 될 수 있습니다.

범죄자는 어떻게 든 사이트의 실제 https 인증서없이 은행 보안 서버를 안전하지 않은 연결로 리디렉션 할 수 있다고 생각하면, 범죄자는 사용자가 알지 못하는 상태에서 연결을 가로 챌 수 있습니다.

내가 볼 수있는 유일한 해결책은 저렴한 인증서를 얻은 다음 HTTPS 사이트 (유효한 인증서가 없으면 사용자가 연결할 수없는)에서 외부 링크의 일반 사이트로 정상적인 리디렉션하는 것입니다.


답변

.htaccess에서 작성해야합니다

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


답변