깃허브 페이지(github page)는 tibyte.github.io와 같은 github.io 주소로 접속하였을 때 HTTPS를 지원하지만 커스텀 도메인을 설정하였을 경우 그림 1과 같이 지원되지 않는 것을 볼 수 있다.

그림 1. 커스텀 도메인 설정한 깃허브 페이지를 접속하였을 때의 주소창



 커스텀 도메인을 연결한 깃허브 페이지에 SSL(Secure Sockets Layer)을 설정하기 위해서는 먼저 SSL 인증서를 발급받아 설치해야 하는데, Cloudflare의 네임서버를 사용하면 이 과정을 간단하게 할 수 있다.

 Cloudflare의 Add Website 페이지에서 도메인을 등록하면 DNS 레코드들을 자동으로 불러온다. 목록을 확인한다.


그림 2. DNS 레코드 설정화면



 DNS 레코드를 확인 후 설정을 저장하고, 소유하고 있는 도메인의 관리 페이지(도메인 등록 대행업체)로 들어가서 네임서버를 Cloudflare에서 안내한 주소로 연결한다.


그림 3. 네임서버 설정



 도메인 네임서버 주소 변경은 전파되는 데 수 분에서 수 일까지 걸릴 수 있다. 정상적으로 전파되었다면, Cloudflare의 Crypto 메뉴에서 SSL 사용여부를 선택할 수 있다. 여기서 옵션이 있는데 github 페이지는 HTTPS를 지원하므로 권장방식인 Full SSL을 선택한다.

그림 4. SSL 설정


 설정을 완료하고, https:// 를 명시한 커스텀 도메인을 사용하여 github 페이지를 접속해 보면 HTTPS가 적용된 것을 볼 수 있다. CA는 COMODO사의 것으로 나온다.

       

그림 5. 커스텀 도메인 설정한 깃허브 페이지를 접속하였을 때의 주소창


 

  주소창에 https://를 입력하지 않고 접속하였을 경우엔 이전과 같이 HTTPS가 미적용된 페이지가 나오는데, 코드상에서 리다이렉팅을 시키면 되지만 Page Rule을 적용하여도 이 효과를 볼 수 있다.

그림 6. HTTPS 강제 리다이렉트 설정







01.

github 저장소에서 임의의 gh-pages브랜치로 페이지를 만들어서 도메인을 연결할 수 있다.

그런데 루트도메인이 다른 사이트를 가리키고 있는 상태에서 서브도메인만 github 저장소의 페이지에 연결하고 싶은데 검색이 잘 되지 않아서 이 포스트를 작성하게 되었다.






02.

1. 먼저 임의의 github 저장소의 브랜치를 만든다. 브랜치 이름은 gh-pages로 해야 한다.


2. gh-pahes 브랜치에 이름이 CNAME인 파일을 만들고 그 안에 연결할 서브도메인을 적는다. 현재 github은 저장소 당 한 개의 도메인 연결을 지원하고 있다. ex) sub.yourdomain.com


3. 보유하고 있는 도메인의 DNS레코드 설정으로 들어가서 A 레코드에 github에서 고지한 IP주소를 적는다. 이 글 작성시점에서는 192.30.252.153이지만 나중에 바뀔수도 있다. 서브도메인명은 중복되지 않게 아무거나 적는다. 여기서는 테스트를 위해 test로 적어보았다.


4. CNAME레코드의 서브도메인명은 2번에서 적은 서브도메인(sub)을, URL주소에는 3번에서 정한 이름(test.yourdomain.com)을 적는다.


5. 저장하고 DNS변경내역 전파시간만큼 기다리면 루트도메인에 관계없이 해당 서브도메인으로 저장소 페이지에 접근할 수 있다. 이 때, gh-pages 브랜치에 index.html파일이 있어야 한다.




+ Recent posts