머리말
오늘 아캣이는 기겁 할 만한 큰 일이 발생 하였다.
워드프레스 사이트가 갑자기 먹통이 되어서 안뜨는 것이다. 특별히 손댄게 없는 것 같은데 말이다.
몇 시간 동안 울먹 울먹 하며 서버 설정도 살펴 보고 DNS 문제인가도 살펴보고 별별 일을 다 해보다가 허무하게 해결을 하였다.
오늘은 원래 다른 주제로 포스팅을 하려 했지만 이런 갑작스런 이슈가 생겨 아캣이와 동일한 증상을 겪을 사람들을 위해 포스팅 하는 걸로 노선을 선회 하였다!!! 😅😅
과연 오늘 무슨 일이 있었던 걸까?? 🥵🥵❗❗
Summary
- 갑작스런 SSL https 접속 오류 발생
- 해결을 위해 시도한 일들
- 최종적으로 해결 된 방법
SSL https 접속 오류 상황
금일 포스팅을 하려고 사이트를 접속을 하는데 정상 작동 하다가 갑자기 좀 이상한 상황이 발생 하였다.
아캣이는 사이트 접속 정보를 보통 브라우저에 저장 해두는데 블로그 관리자 페이지 접속을 하려고 해도 자동 입력 정보가 안뜨는 것이다.
좀 의아해서 보니 https 가 아니라 강제로 http 로 접속이 되면서 신뢰할 수 없는 사이트라고 나오는 것이였다.
로그인을 하면 되긴 한데 문제는 SSL 없이 http 로 운영을 하는 것은 SEO 상으로 매우 치명적이기도 하고 보안상으로써도 취약하기 때문에 어떻게든 문제를 해결 해야만 했다.
최초에 AWS 라이트세일 with 워드프레스 인스턴스를 생성 할때 SSL 자체를 설정하지 않았었다.
어짜피 Cloudflare(클라우드플레어) 에서 DNS 관리를 할 것이고 이곳에서 SSL 을 지원 해주기 때문이였다.
현재 상황에서는 특별히 서버 설정을 건드리지 않았기 때문에 무슨일이 일어나고 있는 것인지 어디서 부터 체크를 해야 하는 것인지 도무지 감이 오지 않았다.
해결을 위해 시도한 일들
Let’s Encrypt 무료 SSL 설치해보기
일단 사이트 접속을 해보면 https 가 동작을 안할 뿐 사이트 자체는 동작을 하고 있었기 때문에 뭔가 SSL 문제인가 싶어서 서버에 무료 SSL 인 Let’s Encrypt 를 설치 해보기로 생각했다.
참고로 SSL 인증서는 유료로 꽤 비싼 요금을 지불하고 도메인별로 구매를 해서 사용해야 하는 인증서 이지만 이로인해 SSL 인증서를 사용하는 사이트가 적어 웹 전반에 걸쳐 보안이 취약해지는 현상이 발생하게 되었다.
이를 보완하고자 모질라 재단, 페이스북, 구글 등등 유수의 업체들이 SSL 사용을 권고 하고자 스폰서로 등록이 되어서 개발된 신뢰성 높은 무료 인증서 라고 보면 된다.
우선은 AWS 라이트세일 인스턴스의 SSH 로 사이트 접속 후 Let’s Encrypt 설치 진행을 해보자.
$ sudo /opt/bitnami/bncert-tool
위의 명령을 실행 시킨 후 메인 도메인과 www 도메인 두개를 등록 시도 해보았다.
하지면 바로 경고(Warning) 문구가 나오는데 도메인 주소가 가르키는 IP 주소와 실제 서버 IP 주소가 서로 다르다 라는 뜻이다.
바로 빠져 나와서 네임서버 정보를 확인 해보자.
$ nslookup icat.kr
실제 서버 IP 주소는 3.34.x.x 인데 icat.kr 도메인이 가르키고 있는 IP 주소는 위와 같이 다른 IP 주소를 향하고 있다.
이 이유는 우리는 현재 Cloudflare 에서 DNS 관리를 하는데 여기서 Proxy 를 사용하고 있기 때문이다.
그렇다고 IP 를 맞추기 위해 프록시를 끌 수도 없는 노릇이다. 이걸 켜놔야 CDN, 캐싱 서비스를 받을 수도 있고 실제 서버 IP를 가릴 수도 있어서 보안을 위해서라도 켜놔야 하기 때문이다.
근데 여기서 문제가 또 발생했다.
기존에는 http 라도 접속이 되었는데 이젠 도메인으로 접속 시도 할 경우 아예 사이트 접속 자체가 안된다..😱😱😱
(아주 첩첩산중 이로구만…)
뭔가 망한 것 같은 느낌이 확~~~ 온다…😤😤😤
스냅샷으로 복구 시도하기
도저히 서버상에 무엇을 손대야 할지 감이 오질 않아서 다른 방법을 시도 하였는데,
마침 이전 포스트에서 다뤘던 AWS 라이트세일 플랜 업그레이드 방법 에서 해봤던 스냅샷을 이용해서 신규 인스턴스에 복구하는 것을 시도 해보기로 하였다.
복구하는 방법은 이미 다룬 내용이라 이번 편에서는 다루지 않고 AWS 라이트세일 플랜 업그레이드 방법 글을 참조 해주기 바란다.
인스턴스에 스냅샷 란에 가보니 전날 포스팅 하려고 생성해둔 스냅샷이 하나 있었다.
불행중 다행이라고 해야하나… 이 스냅샷으로 복구 시도를 해본 결과 전날 작성한 포스팅 글 딱 한개 데이터만 없고 모두 정상적으로 복구가 되었다.
좋다… 일단 이건 진짜 최악의 경우 사용할 보험은 다행히 마련이 되었다.
그럼 최근 스냅샷을 이용해서 복구를 시도 해보자!
.
.
(천년 만년 후)
.
… 안된다… 동일한 증상이다… 이 문제의 증상까지 그대~~로 스냅샷에 딸려 가는 모양이다. 뭐 하기 전 부터 이미 예상은 했지만 그래도 간절히 빌었는데… 😭😭😭
최종적으로 해결 된 방법
‘결국 전날 포스팅 1개를 날리고 복구 해야하나… 정말 힘들게 작성한 건데…’ 라고 고민하던 중 갑자기 문득 이런 생각이 들었다.
현재 도메인으로 접속을 하게 되면 사이트 접속이 아예 안되지만 실제 고정 IP 로 블로그 접속을 하게 되면 정상적으로 뜨고 있는 상황이였다.
‘근데 https 가 접속이 안되는 거라면 DNS 관리를 Cloudflare(클라우드플레어) 에서 하고 있는데 여기 SSL 을 사용하고 있잖아? 그럼 여기도 살펴 봐야 하는거 아닌가?’
대시보드 > SSL/TLS > 개요 이곳으로 와보면 SSL 관련 설정 하는 것이 있는데 처음 DNS 설정 할때 사이트 등록을 하게 되면 기본적으로는 “가변” 부분에 체크가 되어 있을 것이다.
물론 이렇게 해도 정상적으로 SSL 이 적용 되는 것이 맞다.
근데 메일이 하나 날라왔는데 대략 내용이… “제대로 기능을 다 쓰려면 Full 을 선택해서 사용하라” 는 내용이 오길래 믿져야 본전이다 라는 심정으로 “전체” 로 바꾼 후 바로 아래 보이는 SSL/TSL Recommender 를 ON 시키고 https://icat.kr 접속을 해보았다.
결과는 대 성공~ 😵😵❓❗❓❗
드뎌 내 작고 소중한 블로그가 되살아 났다. 근데… 대체 왜 살아 난건지 이유를 모르겠다.
분명 가변으로 두어도 아무 문제 없이 잘 되야 하는게 정상인건데…
사실 이게 정상적인 해결 방식인건지 아니면 우연히 해결 될 타이밍에 내가 이런 행동을 하고 있었던 것인지는 모른다.
하지만 결과적으로는 해결이 되었다는게 중요한 것이 아닌가…😊👍👍
마치며
결과적으로 내가 한거라곤 클라우드플레어 가서 설정 하나 바꾼게 전부이다.
그럼에도 불구하고 주저리 주저리 실패한 시도들을 늘어 놓은 이유는, 서버에서 생기는 이슈는 나열 할 수도 없이 많다.
겉으로는 비슷해 보이는 증상이라도 실제로는 전혀 다른 문제일 수도 있다.
그럼 어떻게든 해결을 해야하는데 나는 오늘 실패한 시도들이지만 어떤 사람들에게는 문제를 해결해 나가는 과정? 생각? 등을 공유 받음으로써 이 과정내에서 어떤 팁 같은것을 얻는 경우도 종종 있다.
꽤나 오늘의 시작은 당황한 하루의 시작이였지만…
뭐 그 덕분에 포스팅 주제 꺼리가 하나 생겨서 완전 꾸…꿀인건가?? 😆
여튼 누군가에겐 뭐라도 도움이 되는 순간이 오겠지~😎😎😎