• 사이트 전체 공지사항 테스트
    일주일 동안 열지 않기

홈페이지 만들기 팁, 정보 게시판입니다.

  • 목록
  • 아래로
  • 위로
  • 쓰기
  • 검색

Ubuntu 18.04에서 Let's Encrypt (무료 SSL 인증서) 설치 - AWS Lightsail

  • 이윰
  • 46
  • 0

소개

Lightsail (라이트 세일)은 로드밸런서를 이용하면 무료 인증서를 이용할 수 있지만,
이 글은 로드밸런서를 사용하지 않는 경우 Let's Encrypt 무료 SSL 인증서를 적용하는 방법입니다.

준비사항

이것을 적용하려면 다음이 준비되어 있어야 합니다.
  • 1. 등록된 도메인 이름 예) example.com
이 포스팅에서는 도메인 이름의 예시를 example.com로 합니다. 이 부분을 자신에 맞게 변경해야 합니다.
Route 53에서 도메인을 구입하거나, 원하는 도메인 등록 기관을 이용합니다.
  • 2. DNS 레코드가 모두 설정되어 있어야 합니다.
호스팅 업체에서 구입한 도메인을 사용한다면 이미 매핑이 되었기 때문에 따로 적용할 것은 없습니다.

1. 루트 로그인합니다. 루트 로그인 명령어는 다음과 같습니다.

$ su
패스워드를 입력하고 루트로 로그인합니다.

2. 가상 호스트 파일 만들기
# vi /etc/apache2/sites-available/example.com.conf
새 파일(example.com.conf)을 만듭니다. 에디터 모드로 전환 (명령어: i) 하여 다음 내용을 추가하고 저장(:wq) 합니다.
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html 
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

3. Certbot 설치

# add-apt-repository ppa:certbot/certbot

Enter를 눌러 수락합니다.

# apt install python-certbot-apache

위 명령어를 사용하여 Certbot의 Apache 패키지를 설치합니다.


4. a2ensite로 위에서 편집했던 파일을 활성화

# a2ensite example.com.conf

5. 000-default.conf 파일은 비활성화합니다.

# a2dissite 000-default.conf

6. 구성 오류를 테스트

# apache2ctl configtest
오류가 발생하면 누락되었거나 오타가 난 문자가 있는지 확인합니다.
정상이면 다음과 같이 출력됩니다.

output

Syntax OK

오류를 뿜지 않았다면 리로드합니다.
# systemctl restart apache2

7. 방화벽에서 HTTPS를 열어 줍니다.

Lightsail에서는
인스턴스> 네트워킹> 방화벽에서 HTTPS 443 포트를 추가하면 됩니다.

8. 인증서 받기
# certbot --apache -d example.com -d www.example.com
처음 certbot을 실행하는 경우 이메일 주소를 입력해야 합니다. 이메일 주소를 입력하고 Enter를 누릅니다.
서비스 약관에 동의 a를 입력하고 Enter를 누릅니다.
이메일로 알림을 받으려면 y를 누릅니다. (선택사항)
이 과정이 약간의 통신 시간을 거쳐 다음과 같은 구성을 선택할 수 있는 화면이 나옵니다.

output

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.

-------------------------------------------------------------------------------

1: No redirect - Make no further changes to the webserver configuration.

2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration.

-------------------------------------------------------------------------------

Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

  1. 리디렉션 없음 - 웹 서버 구성을 더 이상 변경하지 않습니다.
  2. 리디렉션 - 모든 요청을 보안 HTTPS 액세스로 리디렉션합니다.
본인에게 맞는 항목의 숫자를 입력하고 Enter를 누릅니다.

9. 인증서 발급 완료
인증서가 발급이 완료되면 '축하'의 메시지가 나오고 인증서 저장 경로를 확인할 수 있습니다.

output

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2019-01-10. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le


10. 인증서 갱신
갱신 프로세스 테스트
# certbot renew --dry-run
문제가 없다면 갱신을 실행합니다.
# certbot renew
Let's Encrypt의 인증서는 90 일 동안 만 유효합니다. 3개월마다 인증서 갱신은 꽤 귀찮은 일입니다.
자동갱신이 되도록 스크립트를 추가합니다.
# crontab -e
0 0 * * * certbot renew > /var/log/certbot_renewal.log

이제 매일 0시 0분에 리뉴얼 스크립트를 실행하고 certbot_renewal.log에 기록하게 됩니다.


11. 인증서 작동 확인

https로 접속해서 확인합니다.

참고) https://www.sslshopper.com/ssl-checker.html - 여기에서 인증서 설치 적용이 잘 되었는지 확인해 볼 수 있습니다.

공유

facebooktwitterpinterestbandkakao story
퍼머링크

댓글 0

권한이 없습니다. 로그인

신고

"님의 댓글"

이 댓글을 신고 하시겠습니까?

삭제

"님의 댓글"

cmd_comment_do 삭제하시겠습니까?