본문 바로가기
보안이슈

letsencrypt ssl 발급, 추가, 삭제

by 씨엔아이소프트 2019. 7. 24.
반응형

신규 인증서 발급받기


다음 둘 중 한가지 방법으로 신규 인증서를 발급받을 수 있습니다.

ⅰ) Standalone 방식


운용 중인 웹 서버를 잠시 Shutdown하고 다음 명령을 실행합니다.

certbot certonly --cert-name <인증서_이름> --standalone -d <도메인1>,<도메인2>,...,<도메인n> 

 

예) 다음 명령은 Nginx 웹 서버를 사용하는 서버에서 cnisoft.com, www.cnisoft.com 두 개의 도메인에 대한 TLS 인증서를 Standalone 도메인 인증 방식으로 발급받아 cnisoft-cert라는 이름으로 저장합니다.

sudo service nginx stop 

sudo certbot certonly --cert-name cnisoft-cert --standalone -d cnisoft.com,www.cnisoft.com 

sudo service nginx start 


ⅱ) Webroot 방식


웹 서버가 돌고 있는 상태에서 다음 명령을 실행합니다.

웹서버 루트에 /.well-known/acme-challenge 디렉토리를 생성합니다.

cd /home/mydomain.com/public_html

mkdir .well-known

cd .well-known

mkdir acme-challenge

certbot certonly --cert-name <인증서_이름> --webroot -w <WebRoot_디렉토리> -d <도메인1>,<도메인2>,...,<도메인n>


예) 신규 발급 예

/usr/local/certbot/certbot-auto certonly --webroot --webroot-path=/home/abc.com/public_html -d abc.com -d www.abc.com -m "youremail@gmail.com" --agree-tos


 

인증서 설치하기


Certbot으로 발급받은 인증서 목록은 다음 명령으로 확인할 수 있습니다.

certbot certificates


잠시 기다리면 다음과 같은 내용이 나타날 것입니다. 인증서 이름과 대상 도메인, 만료일, 그리고 가장 중요한 정보인 저장된 경로를 확인할 수 있습니다.

---------------------------------------------------------------
Found the following certs:
  Certificate Name: yourdomain.com
    Domains: yourdomain.com www.yourdomain.com
    Expiry Date: YYYY-MM-DD mm:ii:ss+00:00 (VALID: NN days)
    Certificate Path: /path/to/fullchain.pem
    Private Key Path: /path/to/privkey.pem
---------------------------------------------------------------
참고로, 인증서의 실제 파일은 다른 위치에 있고, 위 경로는 심볼릭 링크 파일입니다. 인증서를 갱신하더라도 링크 파일의 경로는 바뀌지 않으므로 매번 웹 서버 설정파일을 수정해주지 않아도 되므로 편리합니다.


인증서 갱신하기


인증서의 유통기한(?)이 다가오면 인증서를 갱신(Renew)해야 합니다. 사이트에 찾아오는 방문객에게 보안경고창을 보여주기 싫다면 말이죠.ㅎㅎ

Certbot은 그간 발급된 인증서 목록과 사용했던 도메인 인증 방식을 별도 데이터로 보관하고 있으므로, 단순히 다음 명령으로 인증서를 갱신할 수 있습니다. 단, 유효기간이 20일 미만으로 남은 인증서에 대해서만 갱신이 이루어집니다. 또한, Standalone 방식으로 발급받은 인증서를 갱신하려면 역시 웹 서버를 먼저 Shutdown해야 합니다.

certbot renew


인증서의 잔여 유효기간에 관계 없이 갱신을 하려면 다음과 같이 --force-renewal 옵션을 추가해주면 됩니다.

certbot renew --force-renewal
Crontab에 등록해서 자동 갱신을 수행하려는 목적으로 스크립트를 작성하는 경우, 임의로 업데이트를 수행하지 않도록 다음과 같이 --no-self-upgrade 옵션을 추가해 줘야 합니다. 이 옵션이 없으면 Linux Repository(apt-get, yum 등)로부터 업데이트 패키지를 설치하려고 시도하는데, 이 때 사용자 입력을 받을 수 없으므로 스크립트 실행이 중단됩니다.

certbot renew --no-self-upgrade 


 

인증서에 포함된 도메인 변경하기


다음 명령으로 인증서가 커버하는 도메인을 첨삭할 수 있습니다.

certbot certonly --cert-name {인증서 이름} -d {도메인1},{도메인2},....{도메인n}


 

인증서 삭제하기

인증서가 더 이상 필요 없어서 삭제하려는 경우, 다음 명령으로 삭제할 수 있습니다.
certbot delete --cert-name {인증서 이름}
※ 주의: 보안 사고 등으로 인해 비밀키가 유출되어 인증서를 교체하려는 경우, 기존 인증서를 삭제하기 전에 Revoke를 먼저 수행해 줘야 안전합니다. Revoke 방법은 공식 매뉴얼의 'Revoking certificates' 항목을 참조해 주세요.
https://certbot.eff.org/docs/using.html#revoking-certificates

반응형

댓글