해당 사이트에 HTTPS 사용을 위한 SSL 적용 및 인정서 발급 받았습니다.
구글에서는 보다 안전한 웹 사용을 위하여 2017년부터 http를 사용하는 사이트에 대하여 경고 표시를 하겠다고 하였습니다. 이제 HTTPS를 사용할 수 밖에 없는데 저 역시 금일 적용해 보기로 했습니다.
해당 사이트에 HTTPS 사용을 위한 SSL 적용 및 인정서 발급
HTTP에서 HTTPS로 전환 하는 것은 어려운 일이 아닙니다. 우선 SSL 모듈을 설치하고, httpd 데몬을 잠시 중단한 후, 인증서를 설치합니다. 설치한 인증서를 사용하기 위하여 ssl.conf와 vhost 관련 conf 파일에서 해당 SSL 인증서를 사용할 수 있게 연결하면 끝입니다. wordpress의 경우, 마지막으로 기본 설정된 http 주소를 https로 변경해주면 끝납니다. 다만, 내부에 뭔가 http로의 링크를 하드코딩한 부분이 있다면 그런걸 바꿔야 하는데, 그렇게 안 써 오셨다면 바꿀 필요가 없습니다.
다음과 같이 letsencrypt의 certbot을 github에서 소스를 git clone을 이용해서 다운로드 받은 다음, httpd 데몬을 내려준 다음 아래와 같이 실행하고, email을 등록해 주면 인증키가 설치됩니다.
./letsencrypt-auto certonly --standalone --domains=studydev.com,www.studydev.com,jira.studydev.com,wiki.studydev.com,plex.studydev.com,git.studydev.com,dev.studydev.com,db.studydev.com
인증서를 발급 받고 나면, ssl.conf와 vhost 파일에 있는 conf에 해당 SSL cert키에 대해서 연결시켜 주면 됩니다.
HTTP에서 HTTPS로 바뀌면 Adsense는 어떻게 할까요?
바뀌는 부분이 없습니다. 자동으로 계속 잘 나옵니다. 딱히 신경 써 주실 부분이 없기 때문에 그대로 이용하시면 됩니다.
해결되지 않은 문제
현재 studydev.com으로 접속하면 자동으로 https://www.studydev.com으로 들어옵니다. 그런데 이상한 문제가 있습니다. jira.studydev.com도 https로 잘 되는것 같은데, 유독 https://studydev.com만 접속이 되지 않습니다. 현재 해당 vhost 관련 log를 보면 아래와 같은 error가 발생하는 것으로 보입니다.
[Sat Jan 07 06:55:49.950994 2017] [ssl:error] [pid 19406] AH02217: ssl_stapling_init_cert: Can't retrieve issuer certificate! [Sat Jan 07 06:55:49.951031 2017] [ssl:error] [pid 19406] AH02235: Unable to configure server certificate for stapling [Sat Jan 07 06:55:49.951051 2017] [ssl:warn] [pid 19406] AH01909: RSA certificate configured for studydev.com:443 does NOT include an ID which matches the server name [Sat Jan 07 06:55:50.009896 2017] [ssl:error] [pid 19406] AH02217: ssl_stapling_init_cert: Can't retrieve issuer certificate! [Sat Jan 07 06:55:50.009919 2017] [ssl:error] [pid 19406] AH02235: Unable to configure server certificate for stapling [Sat Jan 07 06:55:50.009931 2017] [ssl:warn] [pid 19406] AH01909: RSA certificate configured for studydev.com:443 does NOT include an ID which matches the server name
다른 서브도메인은 문제가 없는 것 같은데, 유독 no sub domain의 경우에만 저렇게 에러가 발생중입니다. 해결되면 과정과 함께 남기도록 하겠습니다.
AH01909 SSH 문제 해결!
위 AH01909 문제를 해결했습니다. 사실 문제는 총 2가지였습니다. 첫 번째는 vhost 설정 파일의 순서에 따른 문제였습니다. 두 번째는 해당 설정 파일이 다른 곳에 있는데 이걸 찾아보니 거기에 기록된 cert key 파일 정보가 달랐습니다. 해당 문제와 관련해서 구글링을 해 보았지만, 제가 원하는 답을 쉽게 찾기는 어려웠습니다. 대신 다른 방법을 통해서 확인해 보았습니다. 바로 노가다입니다. 일단 각종 vhost 설정 파일 관련해서 하나씩 수정하면서 보았지만 문제를 해결하지 못했습니다. 그러다가 혹시나 ssl.conf 파일에 문제가 있을까 싶어 보다가 아래 구문을 발견했습니다.
<VirtualHost _default_:443>
위 문구가 시작되면서 https://studydev.com 의 접속 설정을 기본적으로 가져갑니다. 즉, vhost 설정을 위해서 site-enabled 디렉토리에 아래와 같은 설정 파일 내용을 기록하더라도 소용 없다는 이야기입니다.
<VirtualHost *:443> ServerName studydev.com DocumentRoot /var/www/studydev
그러니 아무리 설정을 해도 defalut 홈페이지인 welcome.conf 의 내용에 맞추어 웹 페이지가 표기되는 것이었습니다. 그런데 위에 명시된 문제는 아직 해결 안되었습니다. 바로 AH01909 문제입니다. 이 부분도 간단합니다. _default_:443 들어있는 자리의 cert Key 파일이 localhost의 기본 파일로 되어 있습니다. 그래서 이상하게 동작하는 문제였습니다. 그러니 달리 고민할 것 없이 _default_:443 설정하는 곳에 기존 *:443 에 있던 내용중 필요한 설정과 cert 정보를 연결시켜 주니 해결되었습니다.
즉 지금 시점부터는 https://studydev.com 접속이 아주 잘 된다는 이야기입니다.
해당 사이트에 HTTPS 사용을 위한 SSL 적용 및 인정서 발급 완료!
해당 사이트에 HTTPS 사용을 위한 SSL 적용 및 인정서 발급 과정을 보았습니다. 일단 해결 되지 않는 문제 해결 되면 여러 가지 과정을 요약해서 다시 수정하겠습니다. 하루가 더 지나서 이틀이 걸리긴 했지만 정상적으로 잘 마무리 되었습니다. 근데 또 다른 문제가 보이네요. JIRA Dashboard가 말썽이네요. 이번에 업데이트 하면서 한 번 확인해 봐야겠습니다.