서버 오류 전에 HTTPS에서 HTTP로 리디렉션하는 방법은 무엇입니까?


10

SSL 인증서로 웹 사이트를 운영했지만 SSL 인증서 사용을 중지했습니다. 문제는 웹 사이트에 대한 대부분의 외부 링크가 https : // 접두사를 사용한다는 것입니다.

.htaccess 파일에서 https : //를 http : //로 리디렉션하려고했습니다.

RewriteEngine On

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

그러나 다른 곳에서 지적했듯이 서버는 리디렉션을 활성화하기 전에 인증서를 검색하려고합니다. 따라서 리디렉션이 완료되기 전에 오류가 표시됩니다. 오류는 인증서가 만료되었다는 경고이거나 인증서 서명 요청을 삭제하면 SSL이 최대 허용 길이를 초과 한 레코드를 수신 한 오류입니다.

들어오는 링크를 올바르게 리디렉션 할 수있는 방법이 있습니까?


1
내가 생각한 것처럼 HTTP 요청이 발생하기 전에 SSL이 협상됩니다. 나는 당신이 원하는대로 이것을 작동시키는 데 문제가있을 것이라고 생각하지만, 누군가 더 나은 답변이있을 경우 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.