블로그를 AWS에서 wordpress를 사용하여 운영중이다. 그리고 최근 웹브라우져들은 SSL을 지원안하는 웹사이트의 경우 안전하지 않다는 내용을 보여주고 있다. 그래서 나도 블로그에 SSL을 지원해 보는 것을 시도해보기로 하였다.
이 방법은 도메인을 Route 53을 통해서 관리할 때에 적용할 수 있다.
기본적으로 검색이 되는 다음의 정보를 바탕으로 시작하였다.
https://brunch.co.kr/@poin2lab/5
AWS의 Certified manager에서 난 www.welovedoctor.com 을 대상으로 인증서를 발급받았다. 그리고 이메일을 통하여 인증을 받았다.
EC2의 Dashboard 에서 LOAD BALANCING 메뉴의 Load Balancers에 들어간 다음 Classic Load Balancer를 이용한다. HTTP 뿐만 아니라 HTTPS도 지원할 수 있도록 추가 선택을 한다. SSH 접속을 위해서는 TCP 22 번에 대한 것도 추가한다. SSH를 사용하지 않는다면 ABL을 선택해도 되는 것 같다.
Security groups 을 선택한다. Certificate type은 처음의 ACM을 통하여 하는 것으로 선택한다. Health check에서는 실제 존재하는 html 파일을 대상으로 적어준다. 워드프레스를 사용한다면 index.html 파일은 없을테니까, readme.html 을 대체시켰다. Instances를 선택한다. Tag도 선택한다. 그리고 생성(Create)를 누른다. 대략 5분 정도 후에 상태를 살펴보면 Service 중인 것을 알 수 있다. 그리고 여기에 보면 DNS name 을 알 수 있는데 이 부분은 복사해 둔다.
Route 53으로 들어가서 www.welovedoctor.com 으로 되어 있는 부분을 수정해 준다. 나는 그 동안 CNAME으로 사용하고 있었는데, 이제부터는 type A 로 바꾸어 준다. 그리고 Alias 를 yes 로 한 후에 아까전에 확인한 DNS name 을 입력하면, 바로 아래에 Hosted Zone ID가 보이는 것을 알 수 있다.
최소한 이렇게 해두면 http://10.10.10.82 으로도 접속이 잘 되는 것을 알 수 있다. 역시 http://10.10.10.82 으로도 접속이 잘 되는 것을 알 수 있다.
로그인을 위해서는 wordpress 의 setting 에서 WordPress URL과 Site Address 에서 http를 https로 바꾸어 준다. 그런데 로그인을 하면 에러가 난다.
“you are not allowed to access this page.”
WordPress Codex에서(https://codex.wordpress.org/Administration_Over_SSL) Using a Reverse Proxy를 보면 Example 에 있는 코드 3줄 (주속 포함 6줄)을 추가해 주면 된다고 한다. 그런데 실제로 wp-config.php 파일 최하단에 넣어주니까 계속 안되었다. 인터넷을 조금 더 살펴보니 해당 구절은 최상단에 두어야 한다고 한다. 그래서 하니까 잘 된다.
http://10.10.10.82으로 접속을 해도 http://10.10.10.82 으로 접속을 하는 방법은 Real simple SSL 이라는 plugin을 이용하면 할 수 있다. 굳이 premium을 하지 않아도 되는 것 같다.
Leave a Reply