AWS Application Load Balancer에서 HTTP를 HTTPS로 리디렉션하는 방법은 무엇입니까?


12

우리 웹 사이트는 HIPAA 규정을 준수해야하므로 모든 것을 암호화해야합니다. 클라이언트가 " http : //mysite.com"에 넣을 때 오류 메시지가 표시되는 것을 원하지 않으므로 HTTP와 HTTPS를 모두 지원하고 HTTP를 HTTPS로 리디렉션해야합니다. 내가 맞아?

웹 서버에서 올바르게 수행했습니다. 따라서 웹 서버에 직접 연결하면 HTTP가 자동으로 HTTPS로 리디렉션됩니다. 문제 없다.

그러나 웹 서버는 AWS Application Load Balancer 뒤에 있습니다. ELB에서 HTTP를 HTTPS로 리디렉션하는 방법을 모르겠습니다. 따라서 클라이언트 브라우저 는 여전히 HTTP를 통해 ELB에 연결할 수 있습니다.

AWS Application Load Balancer에서 HTTP => HTTPS를 설정하는 방법은 무엇입니까?

즉, ELB와 웹 서버 간의 연결이 HTTPS인지 확인하지만 클라이언트 브라우저와 ELB 간의 연결이 HTTPS인지 확인하는 방법은 무엇입니까?


당신은 LB에서하지 않습니다. X-Forwarded-ProtoLB가 보내는 헤더를 기반으로 인스턴스에서 수행합니다 .
ceejayoz

저는 서버 사용자가 아닙니다. 저는 C # 프로그래머이므로 바보가되어 실례합니다. URL 재 작성 모듈을 사용하여 Windows 서버에서 리디렉션을 설정했습니다. 서버에 직접 연결하면 작동합니다. 그러나 ELB에 연결해도 여전히 HTTP와 연결할 수 있습니다. 왜?
Silly Dude

ALB가 SSL 인증서를 사용하여 443에서 수신 대기합니까? 확실하게 ALB와 서버 사이에 SSL을 원하십니까?
strongjz

답변:


-4

아래 나열된 구성을 .htaccess 파일에 추가 할 수 있습니다. 그러나 그 전에 서버에서 mod_rewrite가 활성화되어 있고 .htaccess 파일이 거부되지 않았는지 확인하십시오.

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

자세한 설명은 aws end의 공식 문서를 참조하십시오. https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/


7
이 답변은 Apache HTTP Server
Paul Draper

2
OP는 ELB를 구성하는 방법을 묻기 때문에 Apache를 구성하는 방법을 설명 하시겠습니까? 그들은 명시 적으로 아파치가 리다이렉션을하도록 이미 설정했다고 말했다. 답을 삭제하십시오.
Cerin


1

일반적으로 ELB는 https (포트 443)를 수신하고 http (포트 80)에서 EC2 인스턴스 (로드 밸런서 대상)로 전달되도록 설정됩니다.

백엔드 웹 서버는 이러한 요청을로드 밸런서의 포트 443으로 리디렉션하여 (로드 밸런서와 백엔드 웹 서버 사이에) 무한 리디렉션 경로를 발생시킵니다.

일반적인 오류 메시지는 ERR_TOO_MANY_REDIRECTS입니다.

해결책은 리디렉션을 결정할 때로드 밸런서에서 볼 수있는 프로토콜 인 X-Forwarded-Proto를 보는 것입니다.

nginx의 경우 구성은 다음과 같습니다.

server {
    listen   80;
    server_name    www.example.org;   
    if ($http_x_forwarded_proto = 'http') {
         return 301 https://$server_name$request_uri;   
    }
}

아파치 .htaccess의 경우 다음과 같습니다.

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

참고 : 웹 서버를 재구성하지 않고 처리 할 수 ​​있으면 편리하다고 생각할 수도 있지만 2018 년 봄부터 ELB 만 사용하여 해결할 수있는 방법이 없습니다. 즉,이 작업을 수행하도록 웹 서버를 구성해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.