목적은 자체 도메인의 https 서버를 aws에 설정하는 것입니다.
도메인 이름만 예를 들어 Chrome의 주소에 찍어 보안 경고 없이 빨리 표시되는 웹 서버를 만듭니다. Route 53에서 도메인 검색
대시보드에서 도메인 이름을 구입합니다. Certificate Manager에서 인증서 얻기
증명서의 요구로부터, 지정하는 도메인명은, *.domain.example 뿐만이 아니고, 별명으로서 domain.example도 추가해 둔다. 메일 인증 등으로 approval한다. EC2에서 인스턴스 및 로드 밸런서 생성
인스턴스
Amazon Linux AMI를 선택하고 적절한 유형을 선택하여 생성합니다. Elastic IP에서 정적 IP를 검색하고 인스턴스에 연결합니다. 공용 DNS는 ssh로 들어갈 때 사용하므로 복사합니다. 보안 그룹의 인바운드 규칙에서 HTTP 권한을 추가합니다. 로드 밸런서
로드 밸런서를 Classic Load Balancer에서 만들고 대상 인스턴스를 만든 인스턴스로 지정합니다. 리스너의 https에는 작성이 끝난 증명서를 지정해 전송처는 80포트, http도 80에 전송 해 둔다. 보안 그룹의 인바운드는 HTTP, HTTPS를 허용한다. 헬스 체크는, 80번 포트의 index.php로서 둔다. 로드 밸런서의 DNS 이름을 복사합니다. Route 53으로 돌아가서 도메인에 별칭 설정
도메인의 레코드 세트를 만들 때 이름이 비어 있고 유형이 A(IPv4), 별칭이 높음, 별칭 대상이 로드 밸런서의 DNS 이름이 됩니다. Apache, PHP, MySQL 설치
Amazon Linux에서 서버 생성 (Apache2.4 + PHP7.2 + MySQL5.7) 를 참고로 했습니다. /var/www/html/index.php를 적당히 만들어 둔다. HTTP를 HTTPS로 리디렉션
/etc/httpd/conf/httpd.conf의 끝에 다음을 추가한다. /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
</VirtualHost>
로드 밸런서로부터 HTTP로 온 것을 X-Forwarded-Proto로 판정하고 https에 보내도록 클라이언트에 의뢰한다. 로드 밸런서 자체는 아무것도 하지 않는다. 도메인 이름만 브라우저의 주소란에 입력하고 연결하면 OK!
기타
로드 밸런서를 Classic Load Balancer가 아니라 Applicatin Load Balancer로 하면 http에서 https로의 전송 설정을 할 수 있는 것 같다. 인증서는 로드 밸런서가 아닌 CloudFront와 연관될 수도 있습니다. 인스턴스에 직접은, 할 수 없는 것 같다.
Reference
이 문제에 관하여(AWS에 서버 구축(HTTPS, 고유 도메인, Apache)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/toyohisa/items/0d2e64b71f63b71fa11f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)