Let’s Encrypt 인증서는 무료로 사용할 수 있다는 장점이 있지만, 루트 사용자 권한을 얻을 수 없는 웹호스팅 서버는 발급이 까다로운 단점이 있습니다. 이러한 단점을 해결하고자 발급 절차를 웹에서 해결할 수 있도록 하는 사이트가 몇개 있는데요, 이번 포스팅에선 그중 ZeroSSL이란 사이트를 이용해 발급받는 법을 알아볼까 합니다.
ZeroSSL 사이트(https://zerossl.com/) 에 접속후 화면을 스크롤해 CSR Generator를 찾습니다.(혹은 https://zerossl.com/free-ssl/#csr 이주소로 바로 접속합니다)
그럼 이런 화면으로 넘어가집니다. 여기서 채워야 할 부분은 제일 위쪽 Domains라 적힌 부분입니다. 여기에 인증서를 발급할 도메인을 ,(쉼표)로 구분해 쭈욱 적어줍니다.
(입력 예제)
이부분은 EV 인증서(주소 표시줄이 초록색이 되는)를 발급받는 경우가 아니라면 사용되지 않습니다. 기본값 그대로 두어도 무방합니다.
빼먹은 도메인 없이 모든 도메인을 입력했다 생각되면 Generate 버튼을 누르면 알아서 CSR과 개인키가 발급됩니다.
(발급에는 시간이 조금 걸리니 창을 닫지말고 조금만 기다려주세요.)
발급이 끝나면 위와 같이 개인키와 CSR이 발급됩니다. 왼쪽이 개인키, 오른쪽이 CSR입니다.
(위 스크린샷의 값은 임의로 변경했습니다)
이부분이 제일 중요합니다.
입력창 위 버튼중 왼쪽 다운로드 버튼을 클릭해 개인키와 CSR을 백업해 주세요. 개인키는 인증서 설치시, CSR은 인증서 연장시 필요합니다.
개인키와 CSR을 다운로드받았다면 메인화면으로 돌아와 FREE SSL Certificate Wizard를 찾아 Start를 누르시거나 https://zerossl.com/free-ssl/#crt 로 접속해주세요.
이런 화면이 뜹니다. Paste your Let’s Encrypt key 부분은 비워둔 채 Paste yout CSR 부분에 아까 발급받은 CSR을 입력해줍니다. 만약 인증서 만료 알림을 메일로 받고 싶다면 Email 부분에 메일주소를 입력해주세요.
이부분은 배부분 기본 상태인 HTTP verification으로 둬도 잘 되지만, 간혹 일부 호스팅/CMS의 경우 .으로 시작하는 파일을 무조건 막는 경우가 있는데요, 이경우 DNS verification을 선택해야 합니다(어떤 경우인지는 아래 설명하겠습니다)
이용약관도 동의란도 체크해주세요.
다 작성했다면 우측상단 Next를 눌러줍니다.
잘못 입력한 것이 없다면 이런 화면이 뜨면서 왼쪽 입력칸에 계정키가 입력됩니다.
계정키도 다운로드받아 보관해주세요.
계정키도 다운로드받으셨다면 다시한번 Next 버튼을 눌러주세요.
다음으로는 도메인 소유권 확인 작업을 해야 합니다. FTP 프로그램 등으로 웹사이트 최상위 폴더에 .well-known 폴더를 만들고, 만든 폴더 안에 acme-challenge 폴더를 만들고 그 안에 위 파일들을 받아서 넣어주세요. 사이트별로 이 작업을 모두 해주셔야 합니다.
다운로드는 위 버튼 클릭으로 가능합니다.
파일이 잘 올라갔나 확인하시려면 다운로드 버튼 옆 링크를 클릭해주세요. 파일이 잘 올라갔다면 영문 텍스트가 떠야 합니다. 이 단계에서 HTTP 403 오류가 난다면 아래 DNS로 검증하기 절차를 따라 주세요.
파일이 잘 있는지 확인되었다면 다시 우측상단 Next를 눌러주세요.(만약 우측 하단에 HTTP 400 오류 등이 발생한다면 당황하시지 마시고 다시한번 눌러주세요.)
위 과정중 빼먹은것이 없다면 위와 같이 인증서가 발급됩니다! 아래 BEGIN CERI~ 부분의 다운로드 버튼을 클릭해 인증서를 받아주세요.
참고로 다운로드한 인증서는 인증서 파일과 루트 인증서 파일이 같이 들어있습니다. 만약 루트 인증서 파일이 따로 필요한 경우 위쪽 BEGIN~END 부분은 도메인인증서 파일로, 아래쪽 BEGIN~END 부분은 루트 인증서 파일로 따로 저장하시면 됩니다.
흔히 발생하는 오류들
없는 도메인으로 인증을 하려 하면 발생합니다. 혹은 네임서버를 최근에 변경한 경우 발생할 수 있습니다. 이경우 최대 48시간이 지난 뒤 네임서버가 완전히 바뀌면 다시 발급을 시도해주셔야 합니다.
번외편) DNS로 검증하기
이부분에서 아래 DNS verification을 체크해 주시면 HTTP 대신 DNS로 체크합니다.
DNS 검증 방식의 경우 네임서버 변경이 필요합니다. 네임서버 변경 방법은 네임서버 회사별로 천차만별이므로 별도로 설정법을 적지는 않겠습니다.(구글에 네임서버 TXT 레코드 설정이라 검색해보세요) 참고로 호스팅사에서 제공하는 네임서버 사용시 호스팅업체에 문의하셔야 합니다(TXT 레코드 추가)
클라우드플레어 기준 위와 같이 설정하시면 됩니다.
호스팅케이알 기준은 위와 같습니다.
네임서버 변경후 적용시까지 조금 시간이 걸릴수 있으니 10분정도 기다리신뒤 진행하시는것이 좋습니다. 10분정도 지났다면 Next를 눌러 HTTP 인증과 동일하게 진행하시면 됩니다.